コード例 #1
0
 def decorator(*args, **kwargs):
     data = request.json or request.form or request.args
     user_id = data.get('user_id')
     if user_id:
         try:
             user = UserModel.get(UserModel.id == user_id,
                                  UserModel.deleted_at == None)
             kwargs.update({'user': user})
             return f(*args, **kwargs)
         except UserModel.DoesNotExist as e:
             raise UserModel.NotFoundError(u'该用户不存在')
     else:
         raise UserModel.LackOfFieldError(u'请传入用户ID')
コード例 #2
0
 def decorator(*args, **kwargs):
     from flask import request, current_app
     from itsdangerous import TimedJSONWebSignatureSerializer, SignatureExpired, BadSignature
     from backend_common.models.user import User as UserModel
     data = request.json or request.form or request.args
     if data.get('token'):
         token = data.get('token')
         s = TimedJSONWebSignatureSerializer(current_app.secret_key)
         try:
             user_id = s.loads(token)
             user = UserModel.get(UserModel.id == user_id,
                                  UserModel.deleted_at == None)
             tokens = user.tokens()
             if token in tokens:
                 kwargs.update({'user': user})
                 return f(*args, **kwargs)
             else:
                 raise UserModel.TokenError(u'请重新登录')
         except SignatureExpired:
             raise UserModel.TokenError(u'登录已经过期')
         except BadSignature:
             raise UserModel.PasswordError()
         except UserModel.DoesNotExist, e:
             raise UserModel.NotFoundError(u'该用户不存在')