使用Flask-Security进行REST API身份验证。

7
我正在使用Flask-Security构建一个具有公共REST API的Web应用程序。我正在尝试弄清楚如何仅使用REST调用添加用户注册和登录。 使用user_datastore.create_user创建用户相当容易。但是,我如何使用REST调用登录用户? 如果flask_security.utils.login_user以用户名+密码或令牌作为参数,那么这将很容易,但它需要一个用户对象。 文档显示如何使用表单和视图进行注册和登录,但我需要能够从IOS设备(使用RESTkit)注册和登录。

可能是REST身份验证方案的安全性的重复问题。 - Jan Vlcinsky
示例看起来相当简单。创建一个用户,将@login_required添加到您的方法中,然后您就可以自定义Flask-Login以满足您的需求 https://flask-login.readthedocs.org/en/latest/#login-using-authorization-header - njzk2
2个回答

7

2

[由于我没有足够的资格评论Sean Vieira提供的答案,所以写下了这个答案]

我看了一些Flask-Security代码-它使用了Flask-Login的LoginManager。 而Flask-Login又期望用户定义token_loader(以及在User类中实现get_auth_token)

Flask-Security是否提供“默认”的token_loader功能?否则-它与Flask-Login相同

编辑: 结果证明Flask-Security运行良好。我不需要编写自己的token_loader。 我将安全代码放在一个单独的文件中,这就是“魔法”失效的原因。 我将安全代码带回到myapp/init.py中-并且记录的代码“可用”

编辑2: 参考上面Sean提供的答案。我认为这不是一个或另一个。必须使用auth_token_required装饰器。 在User类中覆盖get_auth_token是可选的,以防您想要不同的令牌生成实现(我想) 在User类中覆盖get_auth_token是不够的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接