reactjs 如何在中间件Nextjs中访问sessionStorage

2ul0zpep  于 2023-05-28  发布在  React
关注(0)|答案(1)|浏览(389)

我目前正在我的下一个js应用程序中编写一个身份验证系统,它使用了app router。我的应用程序有一个登录和用户 Jmeter 板路由。当用户成功登录(使用正确的用户名和密码)时,我将用户数据保存在会话存储中。因此,当用户尝试转到 Jmeter 板页面时,我想检查用户是否登录(会话存储中的数据存在)。我想我也可以在dashboard组件文件中完成,但是因为有更多的路由需要保护,我想最好在中间件中检查它。那么我如何访问中间件中的会话存储来检查用户是否登录呢?是否允许用户访问路由。我尝试访问会话存储以检查用户身份验证状态,但收到一个错误,显示sessionStorage未定义。我认为这是因为中间件处理在服务器端,而会话存储在客户端。那我该怎么做呢你知道吗?

bq8i3lrv

bq8i3lrv1#

最好的方法是使用cookies-next使用cookie。cookie会自动附加在每个请求上
如果你坚持使用sessionStorage,那么nextjs13应用目录中有RootLayout文件。您可以在这里检查用户是否经过身份验证,或者您可以创建一个用于身份验证的上下文提供程序并检查useEffect内部的身份验证。如果用户未通过身份验证,您可以将用户重定向到login页面。

相关问题