這個問題是爲了驗證我是否正確理解某些東西。我目前正在設計一個基於Web的應用程序,其中涉及多個頁面(想想,在同一個域下的不同SPA),我想只有一個驗證點。驗證頁面請求沒有cookie
我的問題,那麼,是這樣的:當在一個SPA,可以存儲在本地/會話存儲認證令牌,據我所知認證頁面請求(鏈接到其他網頁的唯一途徑,而不是一個異步請求)是用Cookie來完成的,無論我使用的是哪種身份驗證方法(Basic,OAuth,JWT等)。
我正確嗎?這是唯一可用的方法嗎?
這個問題是爲了驗證我是否正確理解某些東西。我目前正在設計一個基於Web的應用程序,其中涉及多個頁面(想想,在同一個域下的不同SPA),我想只有一個驗證點。驗證頁面請求沒有cookie
我的問題,那麼,是這樣的:當在一個SPA,可以存儲在本地/會話存儲認證令牌,據我所知認證頁面請求(鏈接到其他網頁的唯一途徑,而不是一個異步請求)是用Cookie來完成的,無論我使用的是哪種身份驗證方法(Basic,OAuth,JWT等)。
我正確嗎?這是唯一可用的方法嗎?
這是一個廣泛的問題,但我會說通常答案可能是'不'。你可以做很多事情。
當您提到「一個身份驗證點」時,我會假設您的意思是「單點登錄」。有很多系統可以啓用單點登錄。
在廣泛的層面上,這是怎麼可能的工作:
這是OAuth2中非常常見的流程。
我知道幾個選項:
基本HTTP認證
它是安全的使用基本身份驗證與HTTPS結合。 身份驗證頭在請求之間重複,因此憑據只輸入一次。 唯一的問題是醜陋的瀏覽器彈出請求憑據
由JavaScript或通過服務器端的HTML處理
例如添加令牌/簽名的各個環節使用jQuery,請注意,代碼是簡化
$(document.body).click('a', e => {
var $a = $(e.target).closest('a');
if($a.length) {
e.preventDefault();
document.location = $a.attr('href') + '&token=' + secretToken;
}
})
請找good article explaining available authentification methods here
要看看,如果我理解正確的話,有一個GET(頁面)請求的單一使用的令牌,我承擔在地址欄中是否可見,並由腳本捕獲並用於異步獲取更敏感的憑據? –
@PabloBarríaUrenda是的,這是一種常見的情況。我強烈建議閱讀OAuth2規範,因爲大部分問題已經由花費很長時間思考此事的人解決。此外,您還可以從客戶端和服務器借用大量現有的OAuth2代碼。 – Evert
嗨,非常感謝。由於我誤解了賞金的工作原理,我沒有給你50分,所以我會在幾個小時內給你100分。 –