def identity(payload): ''' identity method for JWT returns user_id from DB ''' user_id = payload['identity'] return UserModel.find_by_id(user_id)
def add_claims_to_jwt(identity): user = UserModel.find_by_id(identity) #print("Permiss: ",identity) if user.permiss == "admin": return {'is_admin': True} else: return {'is_admin': False}
def post(self): jti = get_jwt() BLACKLIST.add(jti['jti']) user = UserModel.find_by_id(jti['sub']) user.status = "invisible" user.lastConnect = datetime.now().strftime('%Y-%m-%d %H:%M:%S') user.update_to_db() #print(user.json()) return { 'status': 'success', 'message': 'Successfully logged out.' }, 200
def put(self, token): claim = get_jwt() #print(claim) user = UserModel.find_by_id(claim['sub']) #print(user.json()) data = ResetPassword.parser.parse_args() if data['password'] != data['passwordConfirm']: return {'status': 'failed', "message": " Password not match"}, 400 hashed = generate_password_hash(data['password'], method='sha256') setattr(user, 'password', hashed) user.update_to_db() access_token = create_access_token(identity=user.userId, fresh=True, expires_delta=timedelta(hours=3)) refresh_token = create_refresh_token(user.userId) return { "status": "success", "data": { "access_token": access_token, "refresh_token": refresh_token } }, 200