next.js 如何更改GitLab accessToken时间过期?

xurqigkl  于 2023-05-28  发布在  Git
关注(0)|答案(1)|浏览(202)

我正在使用NextAuth登录gitlab,但每2小时我的accessToken就会发生变化,我如何长时间保留它并在数据库中注册。注意:我正在创建一个服务来列出所有客户端存储库。

import NextAuth from 'next-auth/next';
import GitLabProvider from 'next-auth/providers/gitlab';
import axios from 'axios';

export default NextAuth({
  providers: [
    GitLabProvider({
      clientId: process.env.CLIENT_ID,
      clientSecret: process.env.CLIENT_SECRET,
      authorization: { params: { scope: 'api' } },
    }),
  ],
  callbacks: {
    session: async (session, user) => {
      if (!session.accessToken) {
        return session;
      }
      return session;
    },
    jwt: async ({
      token, user, account,
    }) => {
      if (user) {
        token.id = user.id;
      }
      if (account) {
        token.accessToken = account.access_token;
      }
      return token;
    },
  },
  secret: process.env.SECRET,
});
qlvxas9a

qlvxas9a1#

检查GitLab 16.0(2023年5月)是否可以帮助:

Token轮转API

以前,为了轮换令牌,令牌所有者必须手动创建新令牌并替换现有令牌。
现在,令牌所有者可以使用:rotate API端点以编程方式轮换个人、组和项目访问令牌。
参见DocumentationIssue

相关问题