2014-01-06 31 views
5

我需要做什麼特別的會話/認證嗎?我通過restangular post方法登錄後,我的服務器無法看到我的會話。登錄成功,但之後沒有在服務器上看到會話。如果我登錄外面的普通帖子,然後嘗試請求一個頁面,它可以正常工作。我還注意到,Chrome在標題中沿着以下方向發送:AngularJS/Restangular sessions

Cookie:_rexbro_session=g2wAAAABaAJkAAxjdXJyZW50X3VzZXJhAmo=--E0687A67DBE48DA40B6957CBCF6E83FB0E612660 

這不是通過冗餘請求發送的。

我還要提到的是,當我通過restangular登錄,服務器與下面的頭回應:

set-cookie:_rexbro_session=g2wAAAACaAJkAAxjdXJyZW50X3VzZXJhAmgCZAAEdXNlcmgIZAASRWxpeGlyLlVzZXIuRW50aXR5ZAALRWxpeGlyLlVzZXJhAm0AAAASYXZvaWRpYW1AZ21haWwuY29tbQAAAA1KYXlzb24gQmFpbGV5bQAAADwkMmEkMTAkNHNsQVFFRGRDcXd1R3JNNVYwOXBTLkx3MHpVeElNLy5tbVM2eTVmc3BFa3NUbHhuTUtiMzJoB2QAFEVsaXhpci5FY3RvLkRhdGVUaW1lYgAAB91hBGEcYRFhD2EUaAdkABRFbGl4aXIuRWN0by5EYXRlVGltZWIAAAfdYQVhA2EVYR5hFmo=--D3F8D9A8355421B8571DB691ED5C082AD183B034; path=/; HttpOnly 

,但我看不到任何東西正在用它做。

在此先感謝。

編輯:我應該說,我的服務器存儲會話,api服務器,是獨立於服務器的前端服務器。

+0

看起來像你的服務器設置在客戶端上的cookie確定,客戶端嘗試將其發回。你有多個應用程序服務器嗎?您是否可以驗證第二個請求是否包含Cookie,並在您的第二個請求中找到正確的服務器(包含您的會話的服務器)?我有一個負載平衡器不能識別通過XHR設置的Cookie的問題。設置cookie時,我必須完成HTTP重新加載才能讓LB將我的http請求保留到正確的服務器,而不是在整個服務器場循環。 – pherris

+0

我剛剛切換到令牌授權。它因爲更容易,而且工作得很好。 –

+0

@JaysonBailey - 你有沒有任何示例代碼來說明你如何給restangular添加令牌auth?任何你可以發佈的片段都會很棒。即時消息當前我需要添加auth到我的restangular設置 – timh

回答

5

我認爲你正在尋找這樣的:

RestangularProvider.setDefaultHttpFields({ 
    withCredentials: true 
}); 

添加此行的app.config

+0

這個配置告訴Restangular(或場景後面的$ http對象)在請求中包含'Access-Control-Allow-Credentials'頭部。閱讀[這個線程](http://stackoverflow.com/questions/24687313/what-exactly-does-the-access-control-allow-credentials-header-do)這個頭做什麼。 –