我试图在用户注册后分配随机用户名。
示例“用户名133241341234”。
我想我必须在 [...nextauth].js 文件中执行类似的操作,但无法解决问题。
顺便使用@next-auth/mongodb-adapter。
callbacks: {
async session({ session, token }) {
if (session?.user) {
session.user.id = token.uid;
session.user.username = `${session.user.name.split` `[0]}${Date.now()}`;
}
return session;
},
}
将其添加为 NextAuthOptions 中的“事件”;您可以使用内置的 isNewUser 标识符来执行如下操作:
const authOptions = {
providers: ...,
callbacks: ...,
adapter: ...,
pages: ...,
events: {
signIn: async ({ user, isNewUser }) => {
function randomInt(min: number, max: number) {
return Math.floor(Math.random() * (max - min) + min);
}
if (isNewUser) {
const num = randomInt(111111, 999999);
const name = `User${num}`;
//update the user.name in the database, using user.id to find the entry
}
},
},
};