2015-04-17 58 views
1

我正在嘗試在我的應用程序中設置ember cli simple auth devise,實際上我發現了很多例子和類似的問題,但仍然無法解決我遇到的問題我打了很多小時,它是插件0.8.0-beta.1的最後一個版本,身份驗證完美無缺,但是當我嘗試在令牌授權下訪問某個頁面時,令牌未在標頭中發送: enter image description hereember cli simple auth devise最新版本0.8.0-beta.1

我想這將導致這是在配置文件中的色器件授權的事情,我有相同的文檔中描述:

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

我有這個repo的整個代碼,如果你可以給一個反饋,它將非常感謝!

更新20/04/2015:

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 

結果: enter image description here enter image description here

+0

您的API可能運行在不同的主機或端口上,並且您忘記配置'crossOriginWhitelist'? – marcoow

+0

@marcoow是的我有一個配置了apache和乘客的rails api。我使用rack-cors嘗試過crossOriginWhitelist,但沒辦法。你可以推薦一個教程或回購一個例子,它將非常感激! – Moh

回答

2

當您的API時,你需要配置灰燼簡單驗證的crossOriginWhitelist並列出不同的主機/端口上運行API的來源,所以Ember Simple Auth將注入Authorization標題。這是一項安全措施,可確保Auth令牌不會隨Internet上的每個請求一起發送。

+0

是的,我配置了crossOriginWhitelist,並在api中安裝了rack-cors,但似乎我所有的請求都以類型text/plain(我猜api響應文本而不是json響應) domaines被使用,我用配置和錯誤更新我的帖子。難道我做錯了什麼? – Moh

+0

就像錯誤信息所說,CORS響應錯誤,以至於服務器無法發送交叉源請求。 – marcoow

+0

這是真的,我不知道爲什麼服務器發送兩次訪問控制允許來源。如果我使用apache和乘客,使用rack-cors有意義嗎?因爲在虛擬主機配置中,頭部也可以被設置。 – Moh

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 

希望這會有所幫助。

相關問題