我们应该如何使用python实现登录功能
我了解python-eve支持HMAC或基于令牌的身份验证,即在每个请求的标头中包含令牌或散列。 然而,我们应该如何实现登录,即在我们提供令牌/ hmac散列之前,我们验证用户名和密码的过程? 我们是否应该接受像下面这样的新路线方法,并直接读取数据库,还有更好的方法来做到这一点?
app.route('/login', methods['POST'])
理想情况下,用户ID,密钥和令牌通过一些带外技术提供,例如电子邮件,普通旧纸,网页(不建议)。 客户端将使用提供的密钥来签署所有请求。
登录不属于REST服务,REST服务根据定义是无状态的(它们不存储客户端的状态,这就是为什么您对每个请求进行身份验证的原因。)
我的建议是处理用户在不同的服务/网站上的注册,而不是API本身。 无论如何,请确保令牌/用户ID /密钥正在带外发送。 中间人攻击等可以欺骗密钥,然后代表预期的客户端使用它来签署API请求。
要正确实施基于令牌的认证,理想情况下,您需要拥有身份认证服务提供商(IdP),您需要对其进行认证并返回一个有效的令牌(有限时间),然后您可以在信任IdP的服务提供商(即您的API)中使用。
这就是说,我猜你可以做一个Eve支持的初始基本身份验证,并返回一个令牌,客户将在随后的请求中使用该令牌。 在我看来,安全方面的好处是在最初的请求期间凭证是脆弱的,而不是每一个请求。 缺点是IdP和SP会是一样的。
你可以在这里阅读更多关于token auth的信息:
希望能帮助到你。
链接地址: http://www.djcxy.com/p/22003.html上一篇: how shall we implement the login functionality with python
