authentication - 服务器端的 Next.js cookie
问题描述
所以我一直在尝试学习 JWT,到目前为止,我已经为此创建了一个简单的 Express API 和一个简单的 Next.js 应用程序,该应用程序具有登录等功能和一个只有在用户拥有有效访问令牌时才可用的页面。
现在我被困在一个问题上,我找不到任何解决方案 - 虽然普通令牌很容易理解,但我读到我将需要刷新令牌,在正常访问令牌过期时使用(并且这些过期非常频繁)。在后端,我可以验证这两个令牌,如果它已经过期,我会发送一个新的有效令牌。
应用程序的当前流程:
当我在客户端并单击一个将我重定向到受保护页面的按钮时,它的工作方式如下:
- 如果用户有一个令牌并且它是有效的 - 重定向到 /route
- 如果用户有一个无效的令牌和一个无效的刷新令牌,重定向到 /login
- 如果用户有一个无效的令牌并且有一个有效的刷新令牌,重定向到 /route 并发送一个新的令牌,在 Cookies 中设置新的令牌
(如果逻辑不正确,也请纠正我)。到目前为止一切顺利 - 这部分工作正常。
现在在服务器端,如果用户的令牌已过期并且用户拥有有效的刷新令牌,会发生什么?我可以将令牌发送回 Next.js 应用程序,但我仍在服务器端,无法更新 cookie。重定向部分工作正常。我应该更新 cookie 还是应该在用户进行客户端操作时自行更新,比如转到另一个受保护的页面?
谢谢!
解决方案
推荐阅读
- reactjs - 当一切正常时,会出现错误提示:`style` 属性需要从样式属性到值的映射(Reactjs)
- python - 在时钟上使用红外遥控器在模式之间切换
- python - 使用 Altair 绘制地理数据框时出现问题
- android - Android admob sdk 在广告不可见的情况下调用 onAdImpression
- javascript - 在按钮上使用平滑滚动插件
- sql - EXECUTE IMMEDIATE DROP FUNCTION 导致 Oracle SQL Developer 挂起
- node.js - Loopback 3 顺序、偏移量和限制。操作顺序
- java - 为什么停止 SwingWorker 会立即停止它?
- amazon-web-services - 在 AWS Ubuntu EC2 上部署 Dockerized MERN 应用程序。我需要 NGINX 或类似技术吗?
- java - 无法在 Java 中使用 OpenCV 读取图像,涉及 unicode 路径