Next.js 重定向/验证

Posted

技术标签:

【中文标题】Next.js 重定向/验证【英文标题】:Next.js redirection/validation 【发布时间】:2021-04-10 18:33:03 【问题描述】:

我正在做一个简单的 Next.js 应用程序,我是新手,我正在使用返回 JWT 的第三方 API 登录用户,我正在尝试验证每个页面,以便如果 JWT 是过期,用户被重定向到登录,我该如何实现?目前我正在使用 useEffect,因为路由器只能在客户端使用,但它会加载页面然后验证 JWT,我还能在 Next.js 中做什么?

PD:我不太了解 next.js 中的中间件和 API 路由

【问题讨论】:

类似于***.com/questions/58173809/…。你已经做对了,在任何 React 应用程序中执行类似操作是最简单和最好的答案。 Next.js 有特定的替代方案,主要是在服务器端检查令牌,但几乎没有任何有效的用例。我唯一的建议是将令牌存储在 cookie 中,而不是像通常推荐的那样存储在 localStorage 或 sessionStorage 中。 Cookie 会自动发送到服务器,如果需要,服务器会打开服务器端检查(但同样,您不需要它)。 这能回答你的问题吗? Next.js Redirect from / to another page 【参考方案1】:

刚刚面临类似的困境,我考虑过的主要选择:

客户端:等待根据身份验证状态控制您的 UI + 数据获取https://swr.vercel.app/examples/auth 服务器端:不复杂,集成良好的解决方案,在您的服务器上进行身份验证https://github.com/vvo/next-iron-session/tree/master/examples/next.js

我发现这篇关于 Iron Session 的文章是一个很好的起点。 https://github.com/vvo/next-iron-session

【讨论】:

以上是关于Next.js 重定向/验证的主要内容,如果未能解决你的问题,请参考以下文章

Next.js+Redux 认证和重定向

Next.js:我们如何将动态路由重定向到静态页面?

Next.js 在 GraphQL 突变内重定向

在 Next.js 中从大写 URL 重定向到小写 URL

Next JS 静态站点:将特定路由重定向到另一个站点?

在 Next.js 中,如何在 axios 拦截器中重定向页面?