【发布时间】:2016-02-23 20:38:39
【问题描述】:
我正在使用 Flask-Restless 制作一个超级简单的 REST API。我想添加身份验证,但仅用于 put/post/delete 调用,而我想公开 get 调用。
到目前为止,我在 views.py 文件中放入了这个:
manager = flask.ext.restless.APIManager(app, flask_sqlalchemy_db=db)
manager.create_api(models.mymodel, methods=['GET', 'POST', 'DELETE'])
我查看了不同的身份验证解决方案,但它们看起来都太“大”了。我将只有一个用户应该能够进行 PUT/POST/DELETE 调用,然后“公共”用户将只使用 GET。
我认为一个简单的方法应该是这样的:
- 进行 get 调用的公共用户:返回 api 响应,就像现在一样
- 公共用户发出 put/post/delete 调用:返回“未授权”响应
- 已注册用户进行 get/put/post/delete 调用:检查是否已注册并回复适当的响应。
“检查”不应该是在我的config.py 文件中存储密钥,然后将其与 api 调用标头的属性进行比较?我认为,正如我在一些教程中看到的那样,为用户创建一个完整的表,然后让 usernames+password 生成 API 令牌太“大”,在这里没有必要。因为我将是唯一可以通过身份验证的用户,我知道关键是什么,我可以在标题中放一些'secret-key' : mysecretkey。我错过了什么吗?
谢谢!
【问题讨论】:
标签: python authentication flask python-requests flask-restless