我正在创建一个小型的REST服务。我正在寻找不同的身份验证方法。对于站点,我使用了Flask-Login模块。似乎是会话身份验证。Flask-HttpAuth模块提供http和digest身份验证方法。我有点困惑。它们是互补的吗?使用哪个更好是因为什么是原因?
谢谢。
发布于 2014-10-07 01:03:01
对于REST服务,您不需要Flask-Login。通常,在web服务中,您不会存储客户端状态( Flask-Login所做的事情),而是对每个请求进行身份验证。Flask-HTTPAuth会帮你做到这一点。
只有当您的应用程序具有web组件和REST API组件时,才会同时使用这两个组件。在这种情况下,Flask-Login将处理web应用程序路由,而Flask-HTTPAuth将处理API路由。
免责声明:我是Flask-HTTPAuth的作者。
发布于 2014-12-15 22:06:31
您可以使用装饰器,以一种非常简单的方式为烧瓶设置Basic Auth,而不需要其他模块。
看看:http://flask.pocoo.org/snippets/8/。
对于flask-restful,,只需将method_decorators = [required_auth]添加到Resource类属性。
您可以扩展上面的代码片段,例如,允许从数据库中检索用户。
请注意,在REST架构中,请求是stateless的:您不使用会话,而是随每个请求一起发送标识令牌(请参阅http://broadcast.oreilly.com/2009/12/principles-for-standardized-rest-authentication.html)。
发布于 2014-10-03 16:55:23
是的,它们相辅相成。
您还可以查看Flask-security,这是一个一体化的库:
https://pythonhosted.org/Flask-Security/
基于HTTP注册会话的authentication
https://stackoverflow.com/questions/26163767
复制相似问题