【问题标题】:Flask-jwt How DO I specify authorization after successful authenticationFlask-jwt 认证成功后如何指定授权
【发布时间】:2018-10-01 03:50:44
【问题描述】:
我正在使用flask、flask-jwt 和flask-restful。我可以获得 access_token ,但是一旦任何用户通过身份验证,他就可以使用 REST-API 端点对所有数据库表执行所有操作,我如何实现授权,其中某些用户可以对数据库中的某些行/字段执行特定操作 @987654325 @。
我读过的所有文章都只谈论获得身份验证,但不要超越。
【问题讨论】:
标签:
database
web
authorization
token
flask-jwt
【解决方案1】:
我找到了一个解决方案,实际上 jwt 只是返回一个包含用户身份和其他信息的签名令牌,要查看令牌中包含的详细信息,可以使用以下网站:
https://jwt.io/
使用flask-jwt,可以在@jwt_required修饰的任何函数下获取一个名为current_identity的对象,必须先导入:
from flask_jwt import jwt_required , current_identity
在我的例子中,current_identity 返回了试图通过 API 端点插入/更新数据的用户的 ID 和名称。
使用一些逻辑来比较数据库中的用户相关数据和他的id,可以用来授权或禁止用户操作/读取数据。