2015-05-04 51 views
1

我正在嘗試製作使用json Web標記進行身份驗證的多頁網絡應用程序。將JWT用於單頁應用程序是相當簡單的,因爲您只需在XHR上設置標題並將其發送出去,但爲常規瀏覽器請求設置標題似乎更難一些。從javascript中設置常規HTTP請求標頭

這裏可以使用查詢字符串,但是最好使用頭文件。

是否有可能從JavaScript設置常規瀏覽器請求標頭?特別是授權標題。如果是這樣,它是如何完成的?還是由於它會引入一些巨大的安全陷阱而被阻止?

回答

1

「是否可以從JavaScript設置常規瀏覽器請求標頭?」

簡答題。不可以。不適用於標準錨鏈接或表單提交行爲。這是傳統多頁應用程序長期存在的「問題」。我使用「問題」周圍的報價,因爲...

Long Answer。有可能有其他方法來實現你的目標。

  1. 使用隱藏的表單字段,如果你做一個表單提交樣式文章和 重定向。
  2. 使用cookie並讀取服務器上的這些值,這個 是很多基於會話的Web瀏覽器身份驗證的工作方式。
  3. 做一些聰明的事情與ajax調用張貼到資源, 迴應成功消息對象與路線導航 成功(也許失敗)。只是一個例子。您可能會利用服務器repsonse代碼(http 302) 等。
+0

3號是我正在嘗試做的。發佈帶有證書的XHR,該證書在成功時返回JWT並將其存儲在會話存儲中,然後重定向到受保護的資源(簡單)。在重定向請求和後續請求中設置JWT的內容(硬)。或者它是不可能的? – oorst

+0

將令牌放入Cookie中是否有任何缺點?因爲那給了我我以後的功能。 – oorst