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