gpt4 book ai didi

authentication - Ember-Data + AMS => JSON 或 HTTP header 的 Ember.js 身份验证 token ?

转载 作者:行者123 更新时间:2023-12-04 12:21:52 25 4
gpt4 key购买 nike

语境:

我有一个 Ember.js 1.1.0-beta.1 应用程序,它与 Rails-API 服务器(Rails 4)交换 JSON 数据。 JSON 数据交换是通过 Ember-Data 1.0.0-beta.2 和 Active Model Serializers 0.8.1 (AMS) 完成的。我正在为 Ember-Data 和 AMS 使用默认的推荐配置,并且符合 JSON-API 规范。

在任何给定的 RESTful 调用中,客户端将当前的身份验证 token 传递给服务器。验证 token 被验证并停用,并生成新的身份验证 token 并将其发送回客户端。因此,每个 RESTful 调用都会在请求中接受一个身份验证 token ,并在响应中提供一个新的身份验证 token ,客户端可以将其缓存并用于下一个 RESTful 调用。

题:

我应该将身份验证 token 放在每个请求和响应中的什么位置?

它应该是请求和响应中每个对象的 JSON 的一部分吗?如果是这样, token 放在现有对象的 JSON 结构中的什么位置(与身份验证无关)?

还是应该将它们放在每个请求和响应对象的 HTTP header 中?

人们最终可能希望在新的 Ember 指南食谱中找到的“Ember 方式”是什么?

更多背景:

我已经熟悉以下链接:

  • @machty 2 Embercasts:http://www.embercasts.com/episodes/client-side-authentication-part-2
  • @wycats 推文:https://twitter.com/wycats/status/376495062709854209
  • @cavneb 3 篇博文:http://coderberry.me/blog/2013/07/08/authentication-with-emberjs-part-1
  • @simlabs 博文:http://log.simplabs.com/post/53016599611/authentication-in-ember-js

  • ...并且正在寻找超越这些的答案,并且特定于 Ember-Data + AMS。

    除了需要通过 Ember-Data 在响应中将新 token 传递回客户端之外,假设我的客户端代码与 GitHub 上的 @machty Embercast 示例类似: https://github.com/embercasts/authentication-part-2/blob/master/public/js/app.js

    非常感谢!

    最佳答案

    我有一个类似的堆栈 - 带有 AMS 的 ember、ember-data 和 rails-api。现在,我只是通过修改 RESTAdapter 将身份验证 token (我存储在 localStorage 中)传递到 header 中(尽管您可以将其传递到查询字符串中)。的 ajax方法。

    我最初的想法是避免在每次请求时重置 token 。如果您特别担心 token 被嗅探,那么定期(例如 10 分钟)在服务器上重置 token 可能会更容易。然后,如果来自客户端的任何请求由于旧 token 而失败,只需获取新 token (通过传递服务器在登录时为您提供的“重置 token ”)并重播初始请求。

    至于将 token 放在哪里,实际上并没有“Ember Way”——我更喜欢将它传递到标题中,因为将它传递到查询字符串中可能会干扰缓存,并且也更有可能在此过程中被记录到某个地方。我肯定会避免在请求正文中传递它 - 这会违背 ember-data 的预期,我想。

    关于authentication - Ember-Data + AMS => JSON 或 HTTP header 的 Ember.js 身份验证 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18967751/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com