![](/img/trans.png)
[英]User login with permissions to routes with angular and spring boot
[英]Anonymous user login using firebase with angular and spring boot
我正在使用 Spring Boot 作為服務器開發 Angular 10 應用程序。 我想使用 firebase 匿名登錄用戶,我將它用於最喜歡的項目等,我需要用戶在第一個后端請求之前登錄。 我添加了 angularfire 依賴項,我匿名登錄用戶並獲得用戶令牌,如下所示:
this.auth.signInAnonymously()
.catch(err =>
//log the error
);
this.auth.onAuthStateChanged(user => {
if (user) {
const token = user.getIdToken();
user.getIdToken(true).then(idToken => {
this.cookieService.set('Authorization', idToken);
});
}
});
我將令牌添加到 cookie 中,因為我想在后端使用它(並且我不想制作過濾器以將其作為標頭添加到每個請求中):
FirebaseToken decodedToken = FirebaseAuth.getInstance().verifyIdToken(authCookie.get().getValue());
我的問題是,令牌過期一段時間后,在后端我收到以下錯誤:
Firebase ID 令牌已過期。 獲取新的 ID 令牌並重試
我不知道是否可以從后端刷新令牌。 有沒有辦法在令牌過期時處理刷新令牌? (在使用過期令牌調用后端之前)
你能告訴我如何設計沒有太多延遲和重試的匿名登錄嗎?
此致
您應該添加代碼來監聽 ID 令牌的變化,因為它每小時自動刷新一次。 使用onIdTokenChanged
firebase.auth().onIdTokenChanged(function(user) {
if (user) {
// User is signed in or token was refreshed.
}
});
每次由於 ID 令牌更改而觸發回調時,您都需要更新 cookie。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.