簡體   English   中英

在 Angular 重建時丟失 API JWT 身份驗證

[英]Losing API JWT authentication on Angular rebuild

對不起,如果這不適合這個論壇,但我不知道該怎么做。 我不會在這里發布代碼,因為我希望這個問題會提示我可以查看/嘗試的 3-4 件事的建議。

我正在使用由天才開發人員提供的 2 個樣板:一個 C# .net 核心 webAPI 和 Angular 10 接口以及 MS SQL db。 我能夠讓他們使用我的數據庫進行身份驗證等,並且我開始對其進行自定義,添加基本功能、表單等。 然而,我做了一些事情,在那里我打破了它,我最近保存到 GitHub 的時間比我意識到的要老得多。 我最終不得不再次將它拼湊起來,但顯然錯過了一些東西。

身份驗證工作正常。 我面臨的唯一問題是,現在當我在 Angular 界面(並且界面刷新)上執行 Save All in MS Code 時,我必須再次登錄。 以前它沒有這樣做,我真的很想回到我每次執行“全部保存”時都不必登錄的地方。

關於我可能會檢查以查看為什么身份驗證無法在刷新中幸存的任何建議? 首先十分感謝。

[新信息 7/12/2021]

[authenticate and refresh-token code][1]
[setTokenCookie code][2]
[getRefreshToken code][3]

通常將 JWT 放在 localstorage 中,然后在刷新時讀取它。 也許這是錯過了?

您是否看到本地存儲中保存了任何內容? Chrome 開發人員工具中的本地存儲示例

如果是這樣,那么它可能缺少在刷新時讀取 JWT,在您的 Angular 項目中查找 localstorage,如果找到並且它正在讀取 JWT,則在刷新時運行該代碼,例如一些自動登錄代碼可能如下所示:

 autoLogin() {
    const userData = JSON.parse(localStorage.getItem('user'));
    if (!userData) {
      return;
    }
    const loadedUser = new User(userData.email, userData.id, userData._token, new Date(userData._tokenExpirationDate));
    return loadedUser;
  }

並且該代碼可能會在 app.component.ts 啟動時運行(默認情況下是 Angular 中的引導組件):

ngOnInit(): void {
  this.authService.autologin();
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM