在烧瓶中保护 REST api
Posted
技术标签:
【中文标题】在烧瓶中保护 REST api【英文标题】:Securing RESTapi in flask 【发布时间】:2011-10-22 18:29:51 【问题描述】:我正在开发的应用程序使用了很多 ajax 调用。不幸的是,我在研究如何限制对 api 的访问时遇到了障碍。例如:
我有一个对http://site/api/tasks/bob进行ajax调用的表 我需要确保只有登录的鲍勃才能读取该表 (否则知道该模式的人可能会要求查看鲍勃的 只需在浏览器中输入 url 即可完成任务)。 在不同的页面上,同一张表需要能够调用http://site/api/tasks/all并显示所有用户的任务(只有管理员才能做到)感谢您抽出宝贵时间阅读并回答。
【问题讨论】:
【参考方案1】:千英尺视图是您需要通过以下方式对用户进行身份验证:
A) 针对每个请求的 HTTP-Auth(basic 或 digest)。
B) 服务器端会话。 (用户进行身份验证并接收会话密钥 - 他们的用户信息存储在服务器上的会话后端,附加到该密钥一旦他们有一个会话,他们可以发出请求将他们的会话密钥传回给您(在 URL 中或在cookie),并且他们有权访问的信息会返回给他们。)
Flask 有一对有用的 extensions 可以处理大部分此类事情 - 查看 Flask-Login 和 Flask-Principal 以查看如何将授权添加到 Flask 应用程序的示例。
【讨论】:
我很想找到更多关于如何实施第二个的信息。 @InnocentPixel -- Flask 已经内置了一个完整记录的会话 api。见:flask.pocoo.org/docs/api/#sessions以上是关于在烧瓶中保护 REST api的主要内容,如果未能解决你的问题,请参考以下文章
使用 Spring Security 保护 REST API
使用 Spring Boot 和 JWT 保护 REST Api