我已经使用适用于Python 3.7的Flask-RESTFUL软件包创建了一个API。我想知道根据他应该访问的列将数据返回给用户的正确方法是什么。
例如,如果我有一个带有(order_id,order_date,price,ebay_name,收益)的“ orders”表,但希望用户A和用户B可以访问不同的数据。假设在路线/get_data
上,我返回了所有字段,但是用户A应该有权访问所有数据,而用户B仅可以看到收入字段。
我目前的做法:当用户登录并进行身份验证时构建JWT令牌时,将“订单”表的列名存储在实际令牌中是否可以接受?然后,当用户转到/get_data
路由时,我基本上会检查存储在JWT中的列名,并使用在令牌(select all_columns_in_jwt from orders)
中找到的列名来构建MySQL查询。我担心暴露JWT令牌中的表列不是最佳方法。
另一个想法是,每次点击/get_data
路由时,都要在用户权限表中进行检查。
有人有建议以更有效的方式实施它吗?