bounty将在19小时后过期。回答此问题可获得+300声望奖励。Ruby正在寻找标准答案:需要一个使用Next.js和RTK查询检查用户是否在每个页面上登录的示例
我正在使用RTK Query with Next.js,我想检查用户是否登录,以更改标题布局和标题文本以及其他可能的内容,如果不使用getInitialProps
,我应该如何完成?
Next.js不推荐使用getInitialProps
,因为它对性能不理想,但是,推荐的方法getServerSideProps
在_app.tsx
级别上不起作用。
我想使用NextAuth
,但我不知道如何在使用RTK Query
时做到这一点,而且我找不到任何示例。
如果有人能给我指出正确的方向或最佳的工作流程,用RTK查询在Next.js的每个页面上验证用户,那就太好了。
1条答案
按热度按时间wfveoks01#
为了获取用户是否经过身份验证,用户向端点发出请求,在next.js中,您可以在构建rest-api代码的
api
目录中定义此请求。然后将其注册到
store.js
中在
api/user
中,根据您的身份验证逻辑返回if user或not。如果使用next-auth
我假设您已经设置了身份验证逻辑,或者您可能已经使用了基于令牌的身份验证
基本上,这将是您检查用户的中心点。
因为您需要header组件的用户,所以在
Header
组件的useEffect
中,您可以调度一个操作来检查用户是否通过了身份验证。或者,您可以设置SessionProvider,以便可以在header组件中挂接useSession
如果希望从服务器端属性获取用户,则必须将用户属性钻取到header组件。