0

i am using CredentialsProvider to auth users into my app. But in authorize function, even if i give the user variables coming from my API Endpoint: NextAuthJS only catches e-mail variable.

Is there a way to pass all variables inside session?

async authorize(credentials, req){
                const res = await fetch('http://localhost:3000/api/login', {
                    method: 'POST',
                    body: JSON.stringify(credentials),
                    headers: {"Content-Type": 'application/json'}
                })
                const {user} = await res.json()

                console.log(user)

                if(res.ok && user){
                    return user
                }

                return null
            }
schwarzsky
  • 80
  • 7

1 Answers1

1

Try to override the jwt and session callbacks:

providers: [ ... ],
callbacks: {
    async jwt({ token, user }) {
      if (user) {
        return {
          ...token,
          user: user.user,
        };
      }

      return token;
    },
    async session({ session, token }) {
      if (token.user) {
        session.user = token.user;
      }
      return session;
    },
  },
lpizzinidev
  • 12,741
  • 2
  • 10
  • 29