简体   繁体   中英

next-auth/discord callbacks arent modifying data

I'm using next-auth/discord however when using the session callback to set a user id to the session it does not set the property.

[...nextauth].js

import NextAuth from "next-auth/next";
import DiscordProvider from "next-auth/providers/discord";

export default NextAuth({
  providers: [
    DiscordProvider({
      ...
      session: {
        strategy: "jwt",
        ...
      },
      callbacks: {
        async session({ session, user }) {
          session.user.id = user.id;
          return session;
        }
      }
    })
  ]
});

/api/page.js

import { getSession } from 'next-auth/react';

export default async function handler(req, res) {
  const session = await getSession({ req });
  console.log(session);
}

This logs:

{
  user: {
    name: ...,
    email: ...,
    image: ...
  },
  expires: ...
}

With no user.id property.

Fixed it, callbacks should have been in NextAuth object. Also callbacks shouldve been:

async jwt({ token, user }) {
      if (user) {
        token.id = user.id
      }
      return token
    },
    async session({ session, token }) {
      session.user.id = token.id
      return session
    }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM