[英]ember cookie vs server cookie
我正在使用Ember和Ember-simple-auth。 這個問題是為了消除我對cookie等的困惑。
我已將余燼存儲配置為Cookie。
我的服務器正在發送一個cookie,該cookie將保存在客戶端。 即
Set-Cookie: dejavu.session=WwwLQjdfOoNz_-bhyYpBLvzew7IUaJuu; Path=/; Expires=Mon, 28-May-2018 15:59:30 GMT
我了解
瀏覽器會自動從標頭中的set-cookie捕獲cookie(這意味着它應該在dev工具中可見)
瀏覽器會在后續請求中自動添加此Cookie。
我不需要對Ember Simple Auth進行任何其他操作,因為服務器Cookie默認情況下是由瀏覽器處理的。
基於這種理解,在Chrome檢查器中,我只看到一個ember-simple-auth cookie,沒有其他東西。
我的問題是:
1-我是否應該在開發工具中看到一個單獨的cookie(從服務器發送的cookie)以及Ember cookie(由Ember simple Auth設置)? 還是我的服務器Cookie必須嵌入到Ember Cookie中? 我實際上在開發工具上看不到服務器cookie,因此感到困惑。
2-這個正確的概念是將ember cookie存儲為Ember,但將服務器cookie作為瀏覽器捕獲並在后續請求中發送標頭的服務器cookie?
好。 經過大量的測試和探索,我找到了解決方案。 我的兩個問題的答案是:
chrome開發工具中存在一個錯誤,該錯誤不會顯示從服務器發送的cookie。 我們不需要將服務器cookie嵌入ember cookie。 瀏覽器本身管理cookie。 僅服務器必須發送一個cookie,然后瀏覽器將對其進行管理,例如,如果cookie過期,則將其丟棄,然后將其自動添加到每個隨后通過api發送的請求的標頭中。 我們可以在開發工具的“網絡”標簽中的請求標題下看到發送請求時的Cookie。
使用會話cookie和Ember-simple-auth,我們不需要在標頭中設置授權者(用於在標頭中添加cookie),因為這將覆蓋會話cookie(由瀏覽器設置)。
因此,當使用Ember-simple-auth和會話身份驗證時,正確的流程是:
添加插件
設置驗證器(遵循github docs)
不要設置授權者(如文檔中所述)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.