refactor: /api/login route
This commit is contained in:
17
wp-content/themes/moonshine/server/api/login.post.ts
Normal file
17
wp-content/themes/moonshine/server/api/login.post.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
export default defineEventHandler(async (event) => {
|
||||
try {
|
||||
const variables = await readBody<AuthLoginForm>(event);
|
||||
const { data, error } = await useServerGraphQLMutation(event, "AuthLogin", variables);
|
||||
if (!data?.login) {
|
||||
throw new Error(error?.message || "Une erreur est survenue lors de la connexion.");
|
||||
}
|
||||
if (!await handleLogin(event, data)) {
|
||||
throw new Error("Échec de la connexion.");
|
||||
}
|
||||
return { success: true, message: "Connexion réussie" };
|
||||
}
|
||||
catch (error) {
|
||||
const message = error instanceof Error ? error.message : "Une erreur est survenue lors de la déconnexion.";
|
||||
return { success: false, message };
|
||||
}
|
||||
});
|
||||
@@ -8,11 +8,11 @@ import { AuthRefreshTokenDocument, type AuthLoginResult } from "#graphql/operati
|
||||
// Handle login result and store user session
|
||||
export async function handleLogin(event: H3Event, loginData: AuthLoginResult) {
|
||||
if (!loginData?.login) {
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
const { user, authToken, refreshToken } = loginData.login;
|
||||
if (!user || !authToken || !refreshToken) {
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
await setUserSession(event, {
|
||||
user: getAuthUser(user),
|
||||
@@ -22,11 +22,13 @@ export async function handleLogin(event: H3Event, loginData: AuthLoginResult) {
|
||||
},
|
||||
loggedInAt: new Date().toISOString(),
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
||||
// Handle user logout by clearing session
|
||||
export async function handleLogout(event: H3Event) {
|
||||
await clearUserSession(event);
|
||||
return true;
|
||||
}
|
||||
|
||||
// Convert AuthUserFragment to nuxt-auth-utils User
|
||||
|
||||
Reference in New Issue
Block a user