Bonjour,
Pour un site en laravel 10 (encore en localhost), j'utilise socialite pour authentifier l'utilisateur à microsoft oauth2 (AD entreprise). Tout se passe bien au niveau de l'autorisation. Le callback est également bon. Mon utilisateur est récupéré. Je vérifie l'utilisateur dans ma propre base de données. C'est parfait.
Je sauvegarde toutes ces informations (access token, refresh token, expires...) dans la session. A la fin de cette dernière page, avant de rediriger vers la page d'accueil, je vérifie les variables de session, elles sont là.
C'est alors que les problèmes arrivent ! Sur la page d'accueil (après redirection), tout est perdu. Je retourne au login. Plus de variables de session.
Je vois que les sessionids sont différents sur ces deux pages (callback et home). J'ai lu beaucoup de choses (cela fait 3 jours que je tourne en rond). Et j'ai essayé de nombreuses solutions, en vain. Si j'ai compris, c'est que du moment que je fais un aller retour vers un autre site (ici microsoft avec socialite), il perd la session.
D'ailleurs, je suis sur http://localhost et microsoft est sur https. Peut-être une info... Mais je ne peux pas mettre localhost en https.
Je suis désespéré...
Merci d'avance.
Jérôme

3 réponses


popotte
Réponse acceptée

Hello :)

Alors tu pourrais montrer le controller qui gère le stockage du callback et la redirection?

Sinon un dd() pendant le process (pour verifier la session par ex) ça casse la session, pareil si tu fait une redirection (enfin ça dépends que ton type de session, avec Redis et Dynamo pas eu de soucis en poussant une session suivie d'une redirection, par contre les autres types de session faut afficher une vue)

Non, j'y crois pas ! Les var_dump et dd() étaient bien responsables de ça. J'ai juste laissé le :
$user = Socialite::driver('microsoft')->stateless()->user();
La sauvegarde des sessions et la redirection vers la home (bien loggué).
Ouf !
Je ne trouvais pas ça normal...
Merci beaucoup !

Ahah avec plaisir ^^