def post(self):
(email, password) = self.get_arguments()
try:
user = auth_service.check_auth(app, email, password)
access_token = create_access_token(identity=user["email"])
refresh_token = create_refresh_token(identity=user["email"])
auth_service.register_tokens(app, access_token, refresh_token)
identity_changed.send(
current_app._get_current_object(),
identity=Identity(user["id"])
)
if is_from_browser(request.user_agent):
response = jsonify({
"user": user,
"login": True
})
set_access_cookies(response, access_token)
set_refresh_cookies(response, refresh_token)
else:
response = {
"login": True,
"user": user,
"access_token": access_token,
"refresh_token": refresh_token
}
return response
except PersonNotFoundException:
current_app.logger.info("User is not registered.")
return {"login": False}, 400
except WrongUserException:
current_app.logger.info("User is not registered.")
return {"login": False}, 400
except WrongPasswordException:
current_app.logger.info("User gave a wrong password.")
return {"login": False}, 400
except NoAuthStrategyConfigured:
current_app.logger.info(
"Authentication strategy is not properly configured."
)
return {"login": False}, 400
except UnactiveUserException:
return {
"error": True,
"message": "User is unactive, he cannot log in."
}, 400
评论列表
文章目录