我正在使用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,
});
1条答案
按热度按时间qlvxas9a1#
检查GitLab 16.0(2023年5月)是否可以帮助:
Token轮转API
以前,为了轮换令牌,令牌所有者必须手动创建新令牌并替换现有令牌。
现在,令牌所有者可以使用
:rotate
API端点以编程方式轮换个人、组和项目访问令牌。参见Documentation和Issue。