Задать вопрос
@souhhhhh

Как удалять пользователя из бд, когда у него заканчивается время работы токена?

import NextAuth from 'next-auth';
import Steam, { STEAM_PROVIDER_ID } from 'next-auth-steam';
import type { NextRequest } from 'next/server';

const authHandler = async function auth(
  req: NextRequest,
  ctx: {
    params: {
      nextauth: string[];
    };
  },
) {
  return await NextAuth(req, ctx, {
    providers: [
      Steam(req, {
        clientSecret: process.env.STEAM_SECRET!,
      }),
    ],
    events: {
      async signIn({user}) { 
        try {
          const response = await fetch('http://localhost:5000/auth/user', {
            method: 'POST',
            body: JSON.stringify({
              name: user?.name,
              image: user?.image,
            }),
            headers: {
              'Content-Type': 'application/json',
            },
          });

          if (!response.ok) {
            console.error('Failed to add user:', await response.text());
          }
        } catch (error) {
          console.error('Error adding user to database:', error);
        }
      }
    },
    
    callbacks: {
      async jwt({ token, account, profile }) {
        if (account?.provider === STEAM_PROVIDER_ID) {
          token.steam = profile;
        }

        return token;
      },

      session({ session, token, }) {
        if ('steam' in token) {
          // @ts-expect-error
          session.user.steam = token.steam;
        }
        return session;
      },
    },

    session: {
      strategy: 'jwt',
      maxAge: 1 * 10 * 10 * 10,
      updateAge: 24 * 60 * 60,
    },

    secret: process.env.NEXTAUTH_SECRET,
  });
};

export { authHandler as GET, authHandler as POST };


когда пользователь логинится, отправляется запрос на бек, чтобы добавить его в базу данных, как сделать так, чтобы когда заканчивается maxAge(время действия токена), то отправлялся запрос на удаление пользователя из бд?
  • Вопрос задан
  • 23 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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