我正在尝试在我的应用程序中设置ember cli简单的auth设计,实际上我发现了许多示例和类似的问题,但仍然无法解决我要打了很多小时的问题,这是插件0.8的最后一个版本.0-beta.1,身份验证工作正常,但当我尝试在令牌授权下访问页面时,令牌不会在标头中发送:
我想的是导致这个问题的是配置文件中的设计授权,我在文档中描述了它:
ENV['simple-auth'] = {
authorizer: 'simple-auth-authorizer:devise'
}
我在repo中有完整的代码,如果你能提供反馈,我们将非常感激!!!
2015年4月20日更新:
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
结果:
答案 0 :(得分:2)
当您的API在不同的主机/端口上运行时,您需要配置Ember Simple Auth的crossOriginWhitelist
并列出API的来源,以便Ember Simple Auth注入{{1标头。这是一项安全措施,可确保Auth令牌不会随着Internet上的每个请求一起发送。
答案 1 :(得分:0)
为了防止有人遇到同样的问题,因为我正在与apache乘客一起工作,我找到了两个我正在处理的实际项目的apache配置文件,这就是为什么起源被发送了两次。如果您正在使用乘客我建议忘记机架并在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
希望这有帮助。