在开发了我的第一个门户网站(使用railstutorial.org)之后,我现在正在构建我的第一个API(有一些帮助)。
门户网站的身份验证适用于session
以及Cookie(如果用户希望记住他的登录信息)。
对于API,我理解使用session
是不安全的;你只需要使用令牌。因此,就像门户网站一样,当用户登录API时,他的凭据会被检查,如果它们有效,则会生成一个令牌,摘要将存储到数据库中。
但是后来:我知道有三个选项如何处理令牌:使用 cookie 将令牌存储在用户的计算机上,将令牌包含为参数或使用 HTTP标头。我阅读使用HTTP标头的API是首选选项。
使用HTTP标头发送令牌而不是cookie是什么意思?它背后的过程/逻辑是什么?何时使用cookie,参数或HTTP标题?
我的理解是,每次API向用户发送数据时,我都应该在HTTP标头中包含令牌吗?用户对API所做的每次调用都应该包含相同的令牌?
答案 0 :(得分:0)
您应该了解Cookie的工作原理。设置cookie还会向客户端发送标准化的http标头。当客户端发送请求时,他们可以发送cookie以及请求。
rails中还有一个http标记的标准:Link这也是在请求中设置特定标头
答案 1 :(得分:0)
我认为此链接是一个很好的起点:http://devcenter.kinvey.com/rest/guides/security
此外,阅读HttpAuthentication :: Token的一些文档应该为您提供如何/何时应用它的基本概述。
http://api.rubyonrails.org/classes/ActionController/HttpAuthentication/Token.html