Exemple #1
0
 def decorated_function(*args, **kwargs):
     token = None
     if 'Authorization' in request.headers:
         auth_header = request.headers['Authorization']
         try:
             token = auth_header.split(" ")[1]
         except IndexError:
             return make_response(
                 jsonify({'message': 'Provide a valid auth token'}), 403)
     if not token:
         return make_response(jsonify({'message': 'Token is missing'}), 401)
     try:
         decode_response = User.decode_auth_token(token)
         current_user = User.query.filter_by(id=decode_response).first()
         if current_user:
             g.user = current_user
         else:
             return make_response(
                 jsonify({
                     'message':
                     "Integrity credentials for provided token are lacking."
                 }), 401)
     except:
         message = 'Invalid token'
         if isinstance(decode_response, str):
             message = decode_response
         return make_response(
             jsonify({
                 'status': 'Failed',
                 'message': message
             }), 401)
     return f(current_user, *args, **kwargs)
Exemple #2
0
 def put(self, token):
     """
     Get the user's reset email
     :return:
     """
     args = user_parser.parse_args()
     password = args['password']
     if len(password) > 6:
         email = User.decode_auth_token(token)
         user = User.get_by_email(email)
         if user:
             try:
                 user.update(**args)
             except IndexError:
                 result = {'message': 'Server error on resetting password.'}
                 return result, 500
             result = {'message': 'Password has been reset successfully.'}
             return result, 200
         result = {'message': 'User does not exist anymore.'}
         return result, 400
     result = {'message': 'Password should not be less than 6 characters.'}
     return result, 400
Exemple #3
0
 def get(self):
     """
     Try to logout a user using a token
     :return:
     """
     args = parser.parse_args()
     auth_header = args['Authorization']
     if auth_header:
         try:
             auth_token = auth_header.split(" ")[1]
         except IndexError:
             result = {'message': 'Provide a valid authentication token'}
             return result, 403
         else:
             decoded_token_response = User.decode_auth_token(auth_token)
             if not isinstance(decoded_token_response, str):
                 token = Token(auth_token)
                 token.save()
                 result = {'message': 'Successfully logged out'}
                 return result, 200
             result = {'message': decoded_token_response}
             return result, 401
     result = {'message': 'Provide an authorization header'}
     return result, 403