ember cli simple auth devise 最新版本 0.8.0-beta.1

ember cli simple auth devise last version 0.8.0-beta.1

我正在尝试在我的应用程序中设置 ember cli simple auth devise,实际上我发现了很多示例和类似问题,但仍然无法解决我苦苦挣扎的问题,这是插件 0.8.0-beta.1 的最新版本,身份验证工作完美,但当我尝试访问令牌授权下的页面时,令牌未在 header 中发送:

我在想导致这种情况的原因是配置文件中的设计授权,我在文档中描述的相同:

ENV['simple-auth'] = {
    authorizer: 'simple-auth-authorizer:devise'
}

我在这个 repo 中有完整的代码,如果您能提供反馈,我们将不胜感激!!!

2015 年 4 月更新:

ENV['simple-auth'] = {
    authorizer: 'simple-auth-authorizer:devise',
    crossOriginWhitelist: ['*']
}

# config/application.rb 
# rack-cors configuration in the server side 
config.middleware.insert_before 0, "Rack::Cors" do
  allow do
    origins "*"
    resource "*",
      :headers => :any,
      :methods => [:get, :post, :delete, :put, :options, :head],
      :credentials => true
  end
end

结果:

当您的 API 在另一个 host/port 上是 运行 时,您需要配置 Ember 简单验证的 crossOriginWhitelist 并列出 API的起源在那里所以 Ember 简单验证将注入 Authorization header。这是一种安全措施,可确保 Auth 令牌不会随每个请求一起发送到整个 Internet。

以防万一有人遇到同样的问题,因为我正在使用 apache passenger,我发现了我正在处理的实际项目的两个 apache 配置文件,这就是 origins 被发送两次的原因。如果您使用的是 passenger,我建议您忘记 rack-cors 并在 apache 中配置它,我发现这是一种干净的方式。

# add these lines in your apache config file into VirtualHost (or Directory must also work) 
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods: "*"
Header set Access-Control-Allow-Headers: "*"
Header set access-control-allow-credentials: true

希望对您有所帮助。