Exemplo n.º 1
0
def create_user(args):
    user = args["username"]
    if User.select().where(User.username == user).count():
        return dict(success=False)

    passwd = args["password"]
    hashed_passwd = bcrypt.hashpw(passwd, bcrypt.gensalt())

    return dict(uid=User.create(username=user, password=hashed_passwd).id)
Exemplo n.º 2
0
 def get(self):
     if self.current_user is not None:
         # Already logged && session still alive
         self.set_status(204)
         return
     user_info = WeChat.get_user_info(js_code=self.request.arguments['code'][0].decode())
     user_uuid = new_login_session(openid=user_info['openid'], session_key=user_info['session_key'])
     self.set_header('Authorization', user_uuid)
     print(f"Login: {user_uuid} {user_info['openid']}")
     if User.get_user(user_info['openid']):
         pass
     else:
         User.new_user(user_info['openid'])
         self.write(Result.Redirect(""))
     self.set_status(200)
Exemplo n.º 3
0
def login(args):
    user = args["username"]
    matching = list(User.select().where(User.username == user))
    if not matching:
        return dict(success=False)

    passwd = args["password"]
    if bcrypt.hashpw(passwd, matching[0].password) == matching[0].password:
        return dict(success=True, uid=matching[0].id)

    return dict(success=False)
Exemplo n.º 4
0
 def get_current_user(self) -> User:
     openid = None
     if 'Authorization' in self.request.headers:
         openid = get_login_openid(self.request.headers['Authorization'])
     return None if openid is None else User.get_user(openid)