2022/1/20

flask_jwt_extended , login example

app.py

from flask_jwt_extended import JWTManager
from flask_jwt_extended import create_access_token
from flask import Flask, jsonify, request

jwt = JWTManager()

app = Flask(__name__)
app.config['JWT_SECRET_KEY'] = 'this-should-be-change'
jwt.init_app(app)

@app.route('/login',methods=['POST'])
def login():
    username = request.json.get('username',None)
    password = request.json.get('password',None)

    print( username, password)

    if username != 'test' or password != 'test':
        return jsonify({"msg":"Bad username or password"}), 401

    access_token = create_access_token(identity=username)
    print(access_token)
    return jsonify(access_token)

if __name__ == '__main__':
    app.run()

這個就是各教學文中,最簡單的範例。
在 flask-jwt-extended source 的 example 中,最簡單的 simple.py

用 python app.py 啟動之後,開啟 postman..
POST: http://localhost:5000/login
Body: raw
{
  "username":"test",
  "password":"test"
}
send. 就可以看到 response Body.. 是一堆 base64 文。

曾經遇到 error : str no decode 之類的。
是用 flask-jwt-extended 用 4.2.3 之後就沒了 (有問題的好像是 3.5.X)

沒有留言:

張貼留言