【问题标题】:Ember.js REST Auth HeadersEmber.js REST 身份验证标头
【发布时间】:2015-08-19 11:12:54
【问题描述】:

我已经为此苦苦挣扎了太久了。我有一个 Expressjs 服务器,它提供了一个登录端点。我得到的响应有一个 JWT 令牌,一小时后到期。都很好。

在 Emberjs 方面,我可以成功验证并获取令牌(使用 ember-simple-auth 和 ember-simple-auth-token)。这很适合保护我的路线。但我不能终生更新 RESTAdapter 标头以包含我的新授权令牌。

我试过了:

  • 使用 $.ajaxPrefilter 设置 Authorization 标头。没用
  • 从 RESTAdapter 访问“this.get('session.secure.token')”。那是未定义的。

拜托,如果有人能指出我正确的方向,我将永远感激不尽。我需要做的就是将“session.secure.token”中的值附加到所有 RESTAdapter 请求的标头。

谢谢

【问题讨论】:

    标签: authentication ember.js token


    【解决方案1】:

    您应该能够将 simple-auth 配置属性 authorizer 设置为 simple-auth-authorizer:token - 在 simple-auth 代码中,它会查找此配置属性,查找 simple-auth-authorizer:token 并将其与 ajaxPrefilter 结合使用.

    // config/environment.js
    ENV['simple-auth'] = {
      authorizer: 'simple-auth-authorizer:token'
    };
    

    【讨论】:

    • 我用过这个。 Simple-Auth 按预期工作,但标头除外。我什至设置了 ENV['simple-auth-token'] = { authorizationHeaderName: 'Authorization', 但是,RESTAdapter(或任何 jQuery ajax 请求)没有帽子头......
    • 我将我的 api 服务器添加到了 crossOriginWhitelist,因为它没有设置,但是在执行 REST 请求时,而不是未经授权的响应(如上所述),它似乎使会话无效。
    • Ember Simple Auth 会自动处理 401 响应并在发生响应时使会话无效(至少在您使用 ApplicationRouteMixin 时)。您可以通过覆盖应用程序路由中的“authorizationFailed”方法来更改该行为。
    • 啊解释了它重定向的原因。除了它不应该失效,因为我刚刚登录。所以由于某种原因,auth 标头没有被发送。我要开始一个新项目,看看有没有什么新鲜的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-19
    • 2021-09-26
    • 2015-03-07
    • 2013-09-28
    • 2015-09-09
    • 2012-12-12
    • 2018-09-21
    相关资源
    最近更新 更多