ember-simple-auth - Ember简单验证: How to set/send multiple request headers?

标签 ember-simple-auth

我花了很多时间试图解决这个问题。

我的后端是带有 devise_token_auth 的 Rails 4.x

要在登录后授权请求,我需要为每个请求发送多个 header ,如下所示(已使用curl验证):

curl -X GET -H "Content-Type: application/vnd.api+json" -H "Access-Token: 33YPWz2Kr4eMimYjblDg7w" -H "Client: godv0EDuuc-2qZ6kvrVLzQ" -H "Token-Type: Bearer" -H "Accept: application/vnd.api+json" -H "Uid: <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="b8ddc0d9d5c8d4ddf8dfd5d9d1d496dbd7d5" rel="noreferrer noopener nofollow">[email protected]</a>" -H "Expiry: 1459295877" -H "Provider: Email"  "http://localhost:3000/api/v1/forms"

我完全不知道授权 API 的实际工作原理。我不明白如何在 DeviseAuthorizer#authorize 方法中设置多个请求 header 。

如果有人知道如何做到这一点并且可以回答这个问题,我将立即打开一个拉取请求来修复该区域的 Ember Simple Auth 文档。

最佳答案

设备授权者将一个函数作为第二个参数传递给#authorize。


http://ember-simple-auth.com/api/classes/BaseAuthorizer.html#method_authorize

authorize(data, block(headerName,headerContent))

参数

数据:对象 session 当前保存的数据

block (标题名称,标题内容):函数 使用授权数据调用的回调;将接收 header 名称和 header 内容作为参数


如果您想添加自己的 header ,您可以创建从设备授权者扩展的授权者类。然后重写授权方法,如下所示:

import Ember from 'ember';
import Devise from 'ember-simple-auth/authorizers/devise';

export default Devise.extend({
  authorize(data, header) {
    this._super(data, header);

    header('X-Custom-Header', "The custom 1 header");
    header('X-Other-Custom-Header', "The custom 2 header");
  }
});

这是有效的,因为在数据适配器 mixin 中,它传递了这个函数:

this.get('session').authorize(authorizer, (headerName, headerValue) => {
    xhr.setRequestHeader(headerName, headerValue);
});

关于ember-simple-auth - Ember简单验证: How to set/send multiple request headers?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36025206/

相关文章:

javascript - Ember Simple Auth 子域重定向

node.js - 在 emberjs 中管理用户角色?

ember.js - 无法使用 embre-simple-auth-token 访问 session 属性和 JWT 声明

javascript - Ember linkedin api 身份验证 token 问题

ember.js - 如何替换 ember-simple-auth 中的授权方法

ember.js - 刷新页面后 ember-simple-auth session.isAuthenticated 为 false

ruby-on-rails - Ember/Rails CORS Simple-Auth 405(不允许)

ember.js - Ember 简单认证: Session lost on refresh

ember.js - EmberJS 测试首次在 phantomjs 中运行失败

ember.js - 使用 Ember 简单例份验证访问用户的帐户信息