3

I'm following this tutorial on how to add roles in next-auth session. Unfortunately, when I add profile property, I get undefined behavior of the profile missing. There are also errors regarding typescript. Is this an error on my side, or is it a known bug, since I couldn't find anything on it.

Here's my code so far:

export const authOptions: AuthOptions = {
  secret: process.env.NEXT_PUBLIC_SECRET!,
  providers: [
    GoogleProvider({
      clientId: process.env.GOOGLE_CLIENT_ID!,
      clientSecret: process.env.GOOGLE_CLIENT_SECRET!,
      // profile: async (profile) => {
      //   return { ...profile, role: profile.role ?? Role.USER };
      // },
    }),
  ],
  pages: {
    signIn: "/",
  },

  adapter: PrismaAdapter(prisma),
};

as you can see it's the same as the one from the tutorial, when I comment out the profile section I get the expected behavior without role. Any help would be appreciated!

Version of Next.js: 13.4.1 (app directory)

Vojin
  • 83
  • 7

1 Answers1

6

I just added "id: profile.sub" to my GoogleProvider and I have no error since that

GoogleProvider({
            clientId: process.env.GOOGLE_ID,
            clientSecret: process.env.GOOGLE_SECRET,
            authorization: {
                params: {
                    prompt: "consent",
                    access_type: "offline",
                    response_type: "code"
                }
            },
            async profile(profile) {

                return {
                    id: profile.sub,
                    name: profile.name,
                    firstname: profile.given_name,
                    lastname: profile.family_name,
                    email: profile.email,
                    image: profile.picture,
                }
            },
        }),
  • Your answer could be improved with additional supporting information. Please [edit] to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers [in the help center](/help/how-to-answer). – Community Jun 05 '23 at 06:35
  • you just saved my day, thank you! – esraa Jun 10 '23 at 22:16