检查身份验证服务器端,如果未经身份验证则重定向

时间:2020-09-23 13:02:55

标签: javascript reactjs next.js

我希望我的NEXTJS项目检查cookie头(仅HTTP)并验证JWT服务器端。如果用户未登录,我想用302重定向到/ login来响应。这种逻辑通常会流向何处?我曾尝试将其放在_app.js的{​​{1}}中,但这似乎使最初的页面渲染器之外的事情大失所望。将逻辑转移到getInitialProps的{​​{1}}似乎可以解决问题,但是我不确定这是一个好习惯吗?如果要求之一是除非经过身份验证,否则不应该给出html / js / css响应,您将放在哪里?提前致谢! :)

1 个答案:

答案 0 :(得分:0)

我认为您可以参考此https://github.com/vercel/next.js/tree/canary/examples/with-iron-session并进行一些修改:

警告:这是一个官方示例,据说正在Next.js中使用最佳做法进行身份验证。

我在几个真实的示例中遇到了一个类似的示例,客户端请求身份验证服务器并获得JWT令牌,然后将该令牌传递到Next.js req.cookie中以进行会话处理。 我不喜欢的是我们必须在Next.js的服务器端提供解密JWT的秘密。