Функция в signIn.then() выполняется до завершения самого signIn NextAuth
Ожидание: по клику на кнопку сначала вызывается signIn, чтобы войти через GitHub, а затем вызывается ServiceSignIn, в котором создается сессия.
<button onClick={() => {
signIn("github").then(() => ServiceSignin());
}}/>
export async function ServiceSignIn() {
await createSession(id);
}
Но еще до открытия страницы GitHub со входом, а тем более еще до завершения авторизации, сессия создается. Как такое может быть?
Ответы (1 шт):
Автор решения: Fromexx
→ Ссылка
Вообще, главная проблема заключается в том, чтобы после отработки signIn вызвать какую-то другую функцию. Получилось достичь такого только через костыль, а именно - указать callbackUrl на страницу, на которой и вызовется нужная функция.
<button onClick={() => {
signIn("github", { callbackUrl: "/gateway" });
}}/>
'use client'
import { ServiceSignin } from "@/services/ServiceAuthActions";
import { useEffect } from "react";
export default function Gateway() {
useEffect(() => {
const Actions = async () => {
await ServiceSignin();
}
Actions();
}, []);
}