我有一個單頁JavaScript應用程序,我使用Auth0服務進行註冊/登錄。如何檢測當前請求是否爲認證回調?
我已經將鎖部件和我保存用戶後的字符串localStorage
進行身份驗證,像這樣:
lock.on("authenticated", function(authResult)
{
localStorage.setItem('login', authResult.idToken);
}
的問題是,當Auth0重定向他們回到我的應用程序在登錄後,authenticated
事件僅在頁面加載後觸發,但到那時,我已經完成檢查以確定localStorage
字符串是否已設置(不是);因此,用戶會越來越要求重新登錄:
if(localStorage.getItem('login') == undefined)
{
lock.show(function(err, profile, token)
{
// ...
}
}
我想看看是否有什麼特別的網頁通過回調之後 - 但是引用並不總是存在。
如果我不會自動提示用戶登錄,而是顯示登錄按鈕 - 由於某種原因,authenticated
事件不會觸發。
我該如何解決這個問題?
嗨若昂。我試過這個示例代碼,但它仍然以無限循環的方式請求登錄。登錄後,它會使用?code =參數重新加載頁面,但它不會得到正確或認證的處理。 – skunkwerk
'?code ='的外觀表明您正在使用OAuth2授權代碼授權,這是爲服務器端Web應用程序處理的。如果您想要一個SPA來處理Lock處理認證響應,您需要使用隱式授權,以便在URL的散列片段('#...')中傳遞響應。 –