godsplan
@godsplan

Какие данные отправлять на бэк для сохранения и идентификации пользователя в next auth?

Речь про next auth (auth.js)
Делаю авторизацию через google.
Все работает корректно, но мне нужно сохранять пользователя по внешней админке, я могу передать любое поле, но проблема в том что все данные которые у меня есть это user.name, user.email и дата истекания авторизации.
То есть сам гугл отдает мне тонну данных, но почему то в колбеке session или signIn, я могу использовать только данные выше.

Выглядит это примерно так:
spoiler
const handler = NextAuth({
    providers: [
        GoogleProvider({
            clientId: process.env.GOOGLE_CLIENT_ID,
            clientSecret: process.env.GOOGLE_CLIENT_SECRET,
        }),
    ],

    callbacks: {
        async session(session, token, user) {
            // user всегда undefined, как его заполнить?
            // token есть, но из подходящих там только поле sub и еще левые
            // session.user хранит в себе данные из гугла, но только имя и почту

            return session;
        },

        async signIn({ user, account, profile }) {
            console.log(user);
            //  Здесь юзер это объект с полями name, email, image из гугла, id тут тоже есть, но его нет в session
            //    ..fetch logic
            return true;
        },
    },
});


Все это нужно мне только для того чтобы в useSession у меня появился id юзера и я мог делать разные манипуляции от имени этого пользоавтеля.

Как это происходит:
1. Я логинюсь, на бэк отправляется запрос, мои данные сохраняются, айди юзера на бэке и в гугле совпадают
2. Я нажимаю, например "лайк", идет запрос в бд с айди активного юзера, что этот юзер нажал лайк,
3. Бэк сохраняет значение лайкнутого поста
  • Вопрос задан
  • 141 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы