Discussions

next-auth v4 : attention à votre return

Image

Avec next-auth v4, vous utiliserez comme précédemment, la fonction unstable_getServerSession (je vous ai mis mon code en dessous). En revanche, je vous déconseille de renvoyer l'objet session, ou alors conditionnez-le bien avec le fait qu'il y ait une session ou non. Si vous renvoyez l'objet session, vous aurez des effets de bords dans certains cas précis.

 

Pour moi, le mieux reste de renvoyer un objet vide si vous ne vous en servez pas dans les props.

 

Prenons l'exemple de la page "/ajouter", en effet, si vous renvoyer l'objet session :

- Notre objet session n'a pas d'image dans notre projet, or c'est la valeur image de l'objet session est une valeur attendue par defaut. Du coup, au moment du rendu, vous aurez l'erreur : `Error: Error serializing `.session.user.image` returned from `getServerSideProps` in "/ajouter". Reason: `undefined` cannot be serialized as JSON. Please use `null` or omit this value.`

 

 Le comportement est donc différent de la v3, et il faut être précis sur ce que vous renvoyez, et préférez renvoyer un objet vide si c'est un cas par défaut qui n'est pas conditionné à la vérification de la session.

 

//Lib
import { authOptions } from '../../pages/api/auth/[...nextauth]';
import { unstable_getServerSession } from 'next-auth/next';

[...]
//Code de votre page
[...]

export async function getServerSideProps(context) {
    //Var
    const session = await unstable_getServerSession(
        context.req,
        context.res,
        authOptions
    );

    if (!session) {
        return {
            redirect: {
                destination: '/connexion',
                permanent: false,
            },
        };
    }

    return {
        props: {},
    };
}
0 réponse
Image
Inscrivez-vous ou connectez-vous pour participer à la discussion.
Aide spontanée

Informations

Créée le 14 octobre 2022 09:51
Dernière activité le 14 octobre 2022 09:51