2017-02-09 1 views
0

J'essaie de trouver un moyen de partager un cookie de session entre mes deux sites. Je ne sais pas si c'est la meilleure approche ou si je devrais placer ces sites sur le même domaine ou passer à une approche différente.Comment autoriser les cookies tiers dans Safari ou créer une solution de contournement?

J'ai deux sites: adminCRM.com et customerSite.com. Le site d'administration est basé sur un squelette 1.5 Mean, utilisant oauth et passeport pour générer des cookies de session qui permettent aux utilisateurs de se connecter. Les utilisateurs reçoivent des rôles d'administrateur et/ou de client. customerSite.com a un iframe qui appelle un login api sur adminCRM.com. customerSite obtient ensuite un cookie de session à partir de l'en-tête de réponse d'adminCRM.

Pour l'essentiel, cette approche de cookie de session semble suffisante. Le problème est que cette approche ne fonctionne pas avec safari et d'autres navigateurs qui refusent les cookies tiers par défaut.

J'ai fait des recherches sur les solutions de rechange et je n'ai pas encore trouvé de solution viable et actuelle. Cependant, je suis très novice dans tout cela et je pense que je vais peut-être m'y attaquer de la mauvaise façon.

Existe-t-il une solution de contournement pour définir des cookies tiers sur un safari? Devrais-je abandonner les cookies tiers et passer à une approche différente? Toute aide est très appréciée.

+0

Vous pouvez utiliser une approche de type oauth. Où vous avez un point de terminaison que chaque page et parlez et obtenez les détails si l'utilisateur est connecté. – epascarello

+0

Désolé. J'aurais dû clarifier. Je l'ai juste placé dans l'édition. J'utilise oauth avec le site admin et les deux sites parlent au point de terminaison api de connexion sur adminCRM.com –

Répondre

0

Mise à jour: Éliminé le problème des cookies tiers. Gardé les domaines séparés.

Je n'ai pas été en mesure de trouver un moyen d'autoriser les cookies tiers, mais cela aurait été hackish de toute façon. J'ai fini par garder les domaines séparés et juste passer des cookies de session à JWT. J'ai utilisé la fonction mleanos meanstack: https://github.com/mleanos/mean/tree/feature/JWT-Auth-Lib