[問題情境]
我正在學習怎麼走 OAuth2 的流程去建構一個登入及授權的服務,使用的是 Authorization code 的模式。前後端分離的環境,所以欲使用服務的第三方、登入授權的前端頁面及負責驗證及邏輯的後端 APIs 都是不同 domain。後端是用 Node Express。
[問題內容]
現在遇到一個問題,主管要求回傳 token 的時候要用 httponly cookie。
而規範中 token 要設在 request header 的 Authorization 這個 Header
GET /resource HTTP/1.1
Host: server.example.com
Authorization: Bearer mF_9.B5f-4.1JqM
像上面這樣
因為 httponly 的 cookie 無法用 Javascript 存取,那要用什麼方式才可以把那段 token 設置到 request header?
還是這兩個需求([用 httponly 傳 token ]和[把 token 設在 request headers 的自訂 header])其實是互斥的?
現在弄出來的 request 是長這樣
GET /resource HTTP/1.1
Host: server.example.com
Cookie: Authorization=Bearer%20mF_9.B5f-4.1JqM
雖然也可以直接去取 request cookie 拿值,但這樣就跟規範的作法不一樣了。想問說就像response header 可以有 set-cookie 來設定 user/agent 的 cookie,那有類似 set-header 這樣的方式嗎?