コード例 #1
0
 def identify(self, request):
     """
     用户鉴权
     :return: list
     """
     auth_header = request.headers.get('Authorization')
     if (auth_header):
         auth_tokenArr = auth_header.split(" ")
         if (not auth_tokenArr or auth_tokenArr[0] != 'JWT'
                 or len(auth_tokenArr) != 2):
             return '请传递正确的验证头信息'
         else:
             auth_token = auth_tokenArr[1]
             payload = self.decode_auth_token(auth_token)
             if not isinstance(payload, str):
                 user = Users.get(payload['data']['id'])
                 if (user is None):
                     return '找不到该用户信息'
                 else:
                     if (user.updated_at == payload['data']['updated_at']):
                         result = payload
                     else:
                         return 'Token已更改,请重新登录获取'
             else:
                 result = payload
     else:
         return '没有提供认证token'
     return result
コード例 #2
0
 def authenticate(email, password):
     """
     用户登录,登录成功返回token,写将登录时间写入数据库;登录失败返回失败原因
     :param password:
     :return: json
     """
     filters = {
         Users.email == email
     }
     userInfo = Users().getOne(filters)
     userInfoPas = Users().getOne(filters, order = 'id desc', field = ('password',))
     if(userInfo is None):
         return BaseController().error('找不到用户')
     else:
         if (Users.check_password(userInfoPas['password'], password)):
             updated_at = int(time.time())
             Users.update(email, updated_at)
             token = UsersAuthJWT.encode_auth_token(userInfo['id'], updated_at)
             return BaseController().successData({'token': token.decode(), 'user': userInfo}, '登陆成功')
         else:
             return BaseController().error('密码不正确')