예제 #1
0
 def post(self):
     """Function handling reset password api endpoint"""
     try:
         identity = get_jwt_identity()
         jti = get_raw_jwt()['jti']
         current_user = User.get_user_by_username(identity)
         data = request.get_json(self)
         # if validate_reset_password(data):
         #     return validate_reset_password(data)
         if User.verify_password(current_user.password_hash, data["password"]):
             try:
                 current_user.password_hash = current_user.hash_password(data['new_password'])
                 current_user.save()
                 
             except:
                 pass
             finally:
                 # Revoke token after password change
                 Revoked(jti).save()
                 Token.delete(Token.token_by_owner(current_user))
                 return Response(json.dumps({"Message": "Password updated successfully. Please login again."}), status=200)
         return Response(json.dumps({"Message": "Password do not match"}), status=403)
     except Exception as e:
         print(e)
         return Response(json.dumps({"Message": "Not logged in"}), status=401)
예제 #2
0
 def post(self):
     """Function handling logout user api endpoint"""
     try:
         current_user = get_jwt_identity()
         jti = get_raw_jwt()['jti']
         if not Revoked.is_blacklisted(jti):
             Revoked(jti).save()
             Token.delete(Token.token_by_owner(current_user))
             return Response(json.dumps({"Message": "Logged out successfully"}), status=200)
         return Response(json.dumps({"Message": "User token has been revoked"}), status=403)
     except Exception as e:
         print (e)
         return Response(json.dumps({"Message": "Not logged in"}), status=401)
예제 #3
0
 def post(self):
     """Function serving login user api endpoint"""
     data = request.get_json(self)
     data['username'] = data['username'].replace(" ", "").lower()
     if validate_login(data):
         return Response(json.dumps(validate_login(data)), status=400)
     user = User.query.filter_by(username=data['username']).first()
     if user:
         if User.verify_password(user.password_hash, data['password']):
             logged_in = Token.token_by_owner(user.username)
             # if logged_in:
             #     return Response(json.dumps({"Message": "Already logged in", "Token": logged_in.token}), status=403)
             expires = timedelta(days=30)
             token = create_access_token(identity=user.username, expires_delta=expires)
             tk = Token(token, user.username).save()
             return Response(json.dumps({"Message": "Successfully logged in", "Token": token, "User": user.serialize}), status=200)
         return Response(json.dumps({"Message": "Wrong password"}), status=401)
     return Response(json.dumps({"Message": "User does not exist"}), status=404)