首次使用 Next-Auth 登录后如何立即为用户提供随机用户名?

问题描述 投票:0回答:1

我试图在用户注册后分配随机用户名。
示例“用户名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;
        },
}
mongodb next.js next-auth
1个回答
0
投票

将其添加为 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
      }
    },
  },
};

© www.soinside.com 2019 - 2024. All rights reserved.