我需要在我的应用程序上开发Rest API(基于Flask)
但我真的不知道应该如何保护它。
目前,我对来自浏览器的用户进行了正常的身份验证。 (使用会话等)
但对于API用户,我应该在每个API请求时询问用户名/密码吗?它真的安全吗?我知道很多web API都使用令牌进行API调用,这是最好的方法吗?
在这种情况下,如何实现它? (这不是我的专业领域..)非常感谢
您应该使用token based authentication
技术来保护您的API
,这个概念很简单,一旦您的用户登录,您的网站应该将其保存在某个地方并将该令牌发回给您的用户。
对于对API的每次调用,用户应该在每次API请求时发送令牌,您应该验证编码的toke并拒绝或发回响应。
看看这里:https://realpython.com/blog/python/token-based-authentication-with-flask/
检查这个http://flask-jwt-extended.readthedocs.io/en/latest/
为了获得更好的性能,您可以将会话令牌存储在NOSQL
数据库中,例如Redis
。
要支持使用社交媒体网站登录,您应该使用OAuth
,它以相同的方式工作,除了它将几个更多的令牌发送回客户端。
如果您有任何疑问,请发表评论,不要忘记评价我的答案