我正在使用flask
,flask-jwt
和flask-restful
. 我可以得到access_token
,但是一旦任何用户通过身份验证,他就可以使用 REST-API 端点对所有数据库表执行所有操作,我如何实现授权,某些用户可以对数据库中的某些行/字段执行特定操作"one belongs to him for example"
。
我读过的所有文章都只谈论获得身份验证,但不要超越。
我正在使用flask
,flask-jwt
和flask-restful
. 我可以得到access_token
,但是一旦任何用户通过身份验证,他就可以使用 REST-API 端点对所有数据库表执行所有操作,我如何实现授权,某些用户可以对数据库中的某些行/字段执行特定操作"one belongs to him for example"
。
我读过的所有文章都只谈论获得身份验证,但不要超越。
我找到了一个解决方案,实际上 jwt 只是返回一个包含用户身份和其他信息的签名令牌,要查看令牌中包含的详细信息,可以使用以下网站: https ://jwt.io/
使用 flask-jwt ,有一个名为 current_identity 的对象,可以在任何由 修饰的函数下获得@jwt_required
,它必须首先导入:
from flask_jwt import jwt_required , current_identity
在我的例子中,current_identity 返回了试图通过 API 端点插入/更新数据的用户的 ID 和名称。
使用一些逻辑来比较数据库中的用户相关数据和他的 id 可以用来授权或禁止用户操作/读取数据。