Default cookie setter in OAuth is not setting samesite = None
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 45/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- À l'abandon
- Stack technique
- php
- Domaine
- authentication
Piste de recherche
Inspecter src/Auth/OAuth.php autour de la ligne 351, où le cookie OAuth est défini, et examiner le comportement des cookies impliqué dans les flux d’administration Shopify intégrés. Reproduire l’échange de jeton en mode online avec un iframe ou ajouter un test ciblé si le repository en fournit un ; le travail est terminé lorsque les cookies sont enregistrés et qu’OAuth fonctionne dans le panneau d’administration Shopify.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Issue summary
The samesite parameter is being ommited from setcookie function in OAuth2 process: https://github.com/Shopify/shopify-api-php/blob/main/src/Auth/OAuth.php#L351, causing the default Lax mode to be selected.
This causes "Perform Token Exchange" step in https://shopify.dev/docs/apps/build/authentication-authorization/session-tokens#request-flow-using-a-session-token to fail when embedded page is loaded through an iframe (for example from Shopify admin panel), because the cookies will not be saved.
Expected behavior
The cookies should be set and OAuth should succeed in Shopify admin panel.
Actual behavior
The cookies are not set and OAuth fails in Shopify admin panel.
Steps to reproduce the problem
- Implement minimal application implementing Shopify's OAuth2 authentication (online mode = true), using this library, with default cookie setter.
- Install application into any Shopify store.
- Delete the initial customer's session. (Simulating different admin user or expired session).
- Try to perform "Token Exchange" from Shopify admin panel.
Reduced test case
Checklist
- I have described this issue in a way that is actionable (if possible)
- I have created a merge request fixing this issue.
- Langage dominant
- PHP
- Étoiles
- 473
- Forks
- 193
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Issues similaires
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 84/100
WordPress/hosting-handbook#506 ·
Les mainteneurs répondent en général sous 2 jours
-
Installing a plugin with composer_packages installs dev dependencies and breaks the autoloader (Error 500)Peut-être pris @Boy132 l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
Les mainteneurs répondent en général sous 1 jour
-
nginx: static-file locations drop the security headers, and the dotfile deny is matched after themOuvertebug Low Security
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 78/100
backdrop-contrib/commerce#60 ·