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)
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)
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)