为何需要在发布的android程序中使用private key, 而不是debug key

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
非常抱歉,是我疏忽了。在 Flask-JWT-Extended 使用非对称加密时的算法应该是 `RS256`,而不是 `HS256`。所以在创建 access token 时,需要将 `algorithm` 参数指定为 `RS256`,并传入私钥的参数名应该是 `private_key`,而不是 `private_key_path`。下面是修改后的代码: ```python from flask import Flask from flask_jwt_extended import JWTManager, jwt_required, create_access_token, get_jwt_identity from cryptography.hazmat.primitives import serialization from cryptography.hazmat.primitives.asymmetric import rsa app = Flask(__name__) app.config['JWT_SECRET_KEY'] = 'super-secret' jwt = JWTManager(app) # 生成公钥和私钥 private_key = rsa.generate_private_key( public_exponent=65537, key_size=2048, ) public_key = private_key.public_key() @app.route('/login', methods=['POST']) def login(): # 获取用户信息 username = request.json.get('username', None) password = request.json.get('password', None) # 验证用户信息(这里省略具体实现) if username != 'user' or password != 'pass': return {'msg': '用户名或密码错误'}, 401 # 生成 access token access_token = create_access_token(identity=username, algorithm='RS256', private_key=private_key) return {'access_token': access_token}, 200 @app.route('/protected', methods=['GET']) @jwt_required(algorithms=['RS256'], public_key=public_key) def protected(): # 获取当前用户身份信息 current_user = get_jwt_identity() return {'msg': f'Hello, {current_user}!'}, 200 if __name__ == '__main__': app.run(debug=True) ``` 非常感谢您的指正,我会更加注意代码的准确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值