authentication - token 认证与 Cookies

标签 authentication cookies ember.js

token 认证和使用 cookie 的认证有什么区别?

我正在尝试实现 Ember Auth Rails Demo但我不明白使用 token 身份验证背后的原因,如 Ember Auth FAQ 中所述关于“为什么要进行 token 认证?”的问题

最佳答案

典型的 Web 应用程序大多是 无国籍 , 因为它的 请求/响应 性质。 HTTP 协议(protocol)是 的最好例子。无国籍协议(protocol)。但由于大多数网络应用程序需要 状态 ,为了持有状态在服务器和客户端之间,使用 cookie 以便服务器可以在每个响应中将 cookie 发送回客户端。这意味着客户端发出的下一个请求将包含此 cookie,因此将被服务器识别。这样服务器就可以维护一个 session 无国籍客户,几乎了解应用程序的所有信息 状态 ,但存储在服务器中。在这种情况下,客户端绝不会持有 状态 ,这不怎么样Ember.js作品。
在 Ember.js 中,情况有所不同。 Ember.js 使程序员的工作更轻松,因为它确实拥有 状态为您,在客户端,每时每刻都知道它的状态无需向服务器发出请求 状态数据。
然而,持有状态在客户端中有时也会引入并发问题,而这些问题在 中根本不存在。无国籍情况。然而,Ember.js 也为您处理了这些问题;特别是 ember-data 就是考虑到这一点而构建的。总之,Ember.js 是一个为 设计的框架。有状态 客户。
Ember.js 不像典型的那样工作 无国籍 Web 应用程序所在的 session , 状态并且相应的 cookie 几乎完全由服务器处理。 Ember.js 持有 状态完全在 Javascript 中(在客户端的内存中,而不是像其他一些框架那样在 DOM 中)并且不需要服务器来管理 session 。这导致 Ember.js 在许多情况下更加通用,例如当您的应用处于离线模式时。
显然,出于安全原因,它确实需要某种 token 唯一键 每次发出请求时都会发送到服务器,以便成为 已认证 .通过这种方式,服务器可以查找发送 token (最初由服务器发出)并在将响应发送回客户端之前验证它是否有效。
在我看来,使用身份验证 token 而不是 cookie 的主要原因是 Ember Auth FAQ 中所述。主要是因为 Ember.js 框架的性质,也因为它更适合 有状态 网络应用范例。因此,cookie 机制不是构建 Ember.js 应用程序的最佳方法。
我希望我的回答能让你的问题更有意义。

关于authentication - token 认证与 Cookies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17000835/

相关文章:

ember.js - 自定义输入字段的长度

javascript - 在 emberjs 中的 View 之间转换时如何处理取消/回滚

ember.js - ember-cli 可以在不运行服务器的情况下自动监视和构建吗?

authentication - 在 Rails 4 中测试 HTTP 摘要式身份验证

authentication - Powershell中WebClient的身份验证错误

java - 在 java 中的子域之间共享 Cookie?

node.js - 对 Node/Express 应用程序使用 connect-flash 时无法获取要渲染的 Flash 消息

javascript - 如何保护仅从前端使用的 API(Ajax 调用)

ruby-on-rails - 从头开始编写用户身份验证或使用 Gem - Rails?

Python - 成功使用 Cookie