下面是 flask 实现 token 机制的示例代码攻略:
1.生成 token 的代码示例
import jwt
from flask import Flask, jsonify
app = Flask(__name__)
app.secret_key = 'your-secret-key'
@app.route('/token')
def generate_token():
token = jwt.encode({'user_id': 123}, app.secret_key, algorithm='HS256')
return jsonify({'token': token.decode('utf-8')})
上面的代码使用了 jwt 库,需要在安装 jwt 库之后才能正常运行。以 macOS 系统为例,使用以下命令安装:
sudo pip install PyJWT
这段代码实现了在 Flask Web 应用中使用 JWT 生成 token,其中使用了 Flask 的 jsonify 将返回的 token 转换为 JSON 格式。其中,jwt.encode()
函数会根据传入的参数加密生成一个 token,app.secret_key
是秘钥,根据实际情况来设置。最后将生成的 token 以 JSON 格式返回。
2.验证 token 的代码示例
import jwt
from flask import Flask, request, jsonify
from functools import wraps
app = Flask(__name__)
app.secret_key = 'your-secret-key'
def token_required(f):
@wraps(f)
def decorated(*args, **kwargs):
token = request.args.get('token')
if not token:
return jsonify({'msg': 'Token is missing'}), 403
try:
data = jwt.decode(token, app.secret_key)
except:
return jsonify({'msg': 'Token is invalid'}), 403
return f(*args, **kwargs)
return decorated
@app.route('/protected')
@token_required
def protected():
return jsonify({'msg': 'This is protected'})
if __name__ == '__main__':
app.run()
这段代码实现了在 Flask Web 应用中验证 token,其中使用了 Flask 的 request
模块,以获取响应参数中的 token。通过 token_required()
装饰器将需要进行验证的函数包裹起来,并在其中进行验证,验证成功后,可以继续执行。
当验证失败时,会返回带有消息和状态代码 403 的 JSON 响应。当需要验证的方法中的 token 无效或者不存在时,会响应这两个错误中的其中之一。
以上就是示例代码攻略中的两个示例说明,第一个示例实现了 Flask Web 应用中使用 JWT 生成 token,第二个示例实现了在 Flask Web 应用中验证 token,并实现了在需要进行验证的函数中使用装饰器 token_required()
进行验证的操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:flask 实现token机制的示例代码 - Python技术站