Skip to content

Commit

Permalink
Removed a workaround related to NextJS internal redirections
Browse files Browse the repository at this point in the history
  • Loading branch information
FlorianLeChat committed Dec 26, 2023
1 parent 6acfe27 commit 6924d20
Showing 1 changed file with 25 additions and 26 deletions.
51 changes: 25 additions & 26 deletions app/[locale]/authentication/actions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -174,53 +174,52 @@ export async function signInAccount(
};
}

let response;

try
{
// Dans le cas contraire, on tente alors une authentification via
// les informations d'authentification fournies avant de rediriger
// l'utilisateur vers la page de son tableau de bord.
response = await signIn( "credentials", {
const response = await signIn( "credentials", {
email: result.data.email,
password: result.data.password,
redirect: false, // https://github.com/vercel/next.js/issues/55586
redirectTo: "/dashboard"
} );

if ( response )
{
// Lorsqu'une réponse semble avoir été récupérée précédemment,
// on tente alors de mettre à jour la durée de vie du cookie
// d'authentification de l'utilisateur avant de le rediriger
// vers la page de la réponse.
// Source : https://github.com/nextauthjs/next-auth/discussions/3794
const cookiesList = cookies();
const authCookie = cookiesList.get( "authjs.session-token" );

if ( authCookie )
{
cookiesList.set( {
// https://github.com/nextauthjs/next-auth/blob/065b7e9d9b8d046758e381c88ef351e65764ea5f/packages/core/src/index.ts#L238-L243
...authCookie,
maxAge: 24 * 60 * 60 * ( result.data.remembered ? 30 : 1 )
} );
}

redirect( response );
}
}
catch ( error )
{
// En cas d'erreur, on affiche un message d'erreur sur la page
// d'authentification.
// d'authentification avant de relancer l'erreur.
if ( error instanceof AuthError )
{
return {
success: false,
reason: "form.errors.generic"
};
}
}

if ( response )
{
// Lorsqu'une réponse semble avoir été récupérée précédemment,
// on tente alors de mettre à jour la durée de vie du cookie
// d'authentification de l'utilisateur avant de le rediriger
// vers la page de la réponse.
// Source : https://github.com/nextauthjs/next-auth/discussions/3794
const cookiesList = cookies();
const authCookie = cookiesList.get( "authjs.session-token" );

if ( authCookie )
{
cookiesList.set( {
// https://github.com/nextauthjs/next-auth/blob/065b7e9d9b8d046758e381c88ef351e65764ea5f/packages/core/src/index.ts#L238-L243
...authCookie,
maxAge: 24 * 60 * 60 * ( result.data.remembered ? 30 : 1 )
} );
}

redirect( response );
throw error;
}

// On retourne enfin un message d'erreur par défaut au l'utilisateur
Expand Down

0 comments on commit 6924d20

Please sign in to comment.