繁体   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