要するに:
Flask マイクロ フレームワーク(およびその依存関係)のみを使用して、あるルートから別のルートへの内部リダイレクトを実行できますか?
例えば:
- ユーザーは登録フォーム (
username
との両方password
) を に送信します。@app.route('/register', methods=['POST'])
- 登録が成功すると、Flask は内部的に HTTP POST を実行し
@app.route('/login', methods['POST'])
てusername
、password
- ユーザーの処理とログイン
詳細:
FlaskとFlask-JWT拡張機能を使用して REST API を構築しています。具体的には、ログインと登録を実装しています。
ログインは完全に機能し、トークンを含む JSON オブジェクトを返します。
以下は私の(ログイン)認証ハンドラーです(つまり/auth
、(POSTリクエスト)-デフォルトのFlask-JWT認証URLルール):
@jwt.authentication_handler
def authenticate(username, password):
user = User.query.filter_by(username=username).first()
if user and user.verify_password(password):
return user
return None
ログインに成功すると、次が返されます。
{
"token": "<jwt-token>"
}
以下は私の登録ルートです:
@app.route('/register', methods=['PUT'])
def register():
username = request.form.get('username')
password = request.form.get('password')
if username is None or password is None:
abort(400) # missing parameters
user = User.query.filter_by(username=username).first()
if user:
abort(400) # user exists
else:
user = User(user=user)
user.hash_password(password)
db.session.add(user)
db.session.commit()
# How do we generate a token?
# Perform an internal redirect to the login route?
return jsonify({'token': <jwt-token>}), 201