实现 jwt 自动登录的策略是什么?

What is the strategy on implementing a jwt auto login?

我是 jwt 授权的新手。我来自哪里只是没有jwt的用户和密码授权。现在,我学习了 jwt 的基础知识,我想使用它,这是我的问题:

在我的登录组件中,我收集了电子邮件和密码,当然,我向用户发送了一个签名的 JWT。我用 js-cookie 存储该令牌。 (我希望直到这里都没有问题)。

现在在我的 _app.js(我正在使用 nextjs)中,我想,如果有一个组件需要数据,我只是构建了应用程序,因为没有登录。我唯一要更改的是,如果数据获取不成功,我会将用户发送到登录屏幕。 这样,用户将自动登录,只要他有 cookie 并且 cookie 和令牌都不会过期。

或者有更好的方法吗?

看完评论编辑: 与此同时,我将 Auth0 登录添加到我的应用程序中。我禁用了所有注册并在 Auth0 数据库中创建了用户。对我来说不利的是,应用程序的设置现在需要更长的时间,因为我需要配置另一个第三方。但公平地说,当这增加了安全性时。

但现在我的问题发生了变化:我现在可以停止使用 JWT,因为我可以信任已登录的用户吗?我会说不,因为 API 是一个没有 JWT 保护的开放 API,所以无论如何我的问题并没有真正改变?!

您不应尝试发行自己的令牌,而应使用经过 openid-connect 认证的令牌服务(如 KeyCloak, AzureAd, Auth0, Ping , IdentityServer...)

其次,您应该尽量避免将令牌存储在cookie 中,甚至是浏览器中。我强烈推荐以下讨论安全问题的视频:

alert‘OAuth 2 0’; // The impact of XSS on OAuth 2 0 in SPAs