2 votes

Yii2 Bad Request 400 - Impossible de se connecter depuis une iframe sur un autre domaine

J'utilise iframe sur domain1.com Et l'application web yii2 est sur domain2.com

J'ai passé l'url de domain.com dans le src de l'iframe sur domain1.com et je l'utilise dans le contrôle d'accès de yii2 pour autoriser l'origine : * pour activer les cors

Je peux me connecter sur domain2.com mais si j'essaie de me connecter via une iframe sur domain1.com, il y a une mauvaise requête 400.

Toute aide serait très appréciée

1voto

Hamza Awan Points 92

Voici la réponse à ma question, j'ai résolu le problème

  • Modifier la version de PHP pour qu'elle soit >7.3
  • Allez dans le fichier config/web.php pour l'application de base ou config/main.php
  • Ajouter ceci : 'httpOnly' => true, 'secure' => true, 'samesite' => 'None' dans le paramètre _csrf pour le bloc requête et le cookie _identité dans le bloc utilisateur

En utilisant cette méthode, vous pourrez vous connecter au domaine 1.com et au domaine 2.com en utilisant la même session sur les deux domaines si le site est dans un iframe dans le domaine 1.com.

0voto

Vishal Kumar Points 782

Pour la version PHP < 7.3, mettez à jour le fichier de configuration main.php et définissez la valeur de sameSite à None dans la variable path comme suit
- biscuit

    identityCookie' => [
           'name' => 'your_cookie_name',
           'httpOnly' => true
           'path' => '/;SameSite=None',
           'secure' => true
       ]

- session-cookie  

    'cookieParams' => [
      'lifetime' => time()*60,
      'httpOnly' => true,
      'secure'=>true,
      'path' => '/;SameSite=None'
    ]

Nota:

  1. Vous devrez peut-être éditer le fichier : yii \web\Cookie en mettant à jour la valeur de $path de '/' à '/;SameSite=None'.
  2. PHP 7.3 et YII 2.0.21 propose la solution SameSite avec 3 valeurs Lax, Strict et None. valeurs Lax, Strict et None. Cliquez sur ici pour en savoir plus .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X