Exemplo n.º 1
0
 def post(cls, token: str):
     data = request.get_json()
     user = UserModel.find_by_token_2fa(token)
     if user:
         response = EmailSecondFA.check_2fa_code(token, data["code"])
         if response:
             access_token = create_access_token(identity=user.sha_private,
                                                expires_delta=EXPIRES_DELTA)
             refresh_token = create_refresh_token(identity=user.sha_private)
             return {
                 "access_token": access_token,
                 "refresh_token": refresh_token
             }, 200
         return {"message": response_quote("email2fa_failed")}, 400
     return {"message": response_quote("user_not_exist")}, 404
Exemplo n.º 2
0
 def post(cls, token: str):
     data = request.get_json()
     user = UserModel.find_by_token_2fa(token)
     if user:
         response = EmailSecondFA.check_2fa_code(token, data["code"])
         if response:
             password_salt, password_hash = PassCrypt.generate_password_hash(
                 data["new_password"])
             user.password_salt = password_salt
             user.password_hash = password_hash
             user.token_2fa = None
             user.session_key = None
             user.save_to_db()
             EmailSecondFA.force_revoke_2fa_code(token)
             return {"message": response_quote("user_password_reset")}, 201
         return {"message": response_quote("email2fa_failed")}, 401
     return {"message": response_quote("code_404")}, 404
Exemplo n.º 3
0
 def post(cls, token: str):
     data = request.get_json()
     user = UserModel.find_by_token_2fa(token)
     if user:
         response = EmailSecondFA.check_2fa_code(token, data["code"])
         if response:
             session_key = hashlib.sha256(
                 str.encode(str(datetime.datetime.now()))).hexdigest()
             user.session_key = session_key
             user.token_2fa = None
             user.save_to_db()
             EmailSecondFA.force_revoke_2fa_code(token)
             access_token = create_access_token(
                 identity=user.session_key,
                 expires_delta=datetime.timedelta(hours=4))
             return {"access_token": access_token}, 200
         return {"message": response_quote("email2fa_failed")}, 401
     return {"message": response_quote("code_404")}, 404