next.js 如何防止会话出现新的过期日期?

brgchamk  于 2023-03-02  发布在  其他
关注(0)|答案(1)|浏览(125)

我在下一个应用程序中使用next-auth进行用户身份验证。
每次用户切换到浏览器中的另一个窗口或选项卡并返回应用程序时,session都会采用新的到期日期,如下所示:

{
  expires: '2023-01-05T00:53:50.523Z',
  accessToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYzOTZiMTlhYTczMmUzMzYwMjU2ZjBlMiIsImlhdCI6MTY3Mjg3OTk3MCwiZXhwIjoxNjcyOTY2MzcwfQ.NSFAUb9kHgKkCoBtw60tG9vgOXMTwX8lD7Kgb8TxsFI'
}

切换选项卡并返回

{
  expires: '2023-01-05T00:54:05.724Z',
  accessToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYzOTZiMTlhYTczMmUzMzYwMjU2ZjBlMiIsImlhdCI6MTY3Mjg3OTk3MCwiZXhwIjoxNjcyOTY2MzcwfQ.NSFAUb9kHgKkCoBtw60tG9vgOXMTwX8lD7Kgb8TxsFI'
}

有没有可能防止这种情况?我不想有一个新的有效期。我读了官方的documentation,但我没有发现任何关于这个功能。
感谢您的关注!

fcg9iug3

fcg9iug31#

你可以在SessionProvider上设置refetchOnWindowFocus选项为false,以避免它在每个焦点选项卡上自动刷新。
文档示例

<SessionProvider
  session={session}
  // In case you use a custom path and your app lives at "/cool-app" rather than at the root "/"
  basePath="cool-app"
  // Re-fetch session every 5 minutes
  refetchInterval={5 * 60}
  // Disable Re-fetches session when window is focused
  refetchOnWindowFocus={false}
>
  <Component {...pageProps} />
</SessionProvider>;

相关问题