2017-06-07 2 views
0

Je travaille sur une application Zendesk. Il permettra aux utilisateurs finaux d'intégrer mon propre service dans leur environnement Zendesk. Comme ils doivent s'authentifier avec mon service, j'ai décidé d'autoriser les utilisateurs à entrer un jeton dans les paramètres de l'application dans Zendesk. Ce jeton ne sera pas visible par tous les agents utilisant l'application, car il me permet d'utiliser {{setting.token}} dans le code.L'exécution d'un appel ajax sécurisé sur un proxy crée un nouvel ID de session. Comment puis-je contourner cela?

Maintenant, je fais un appel ajax (avec sécurisé: true) pour authentifier l'utilisateur et définir $ _SESSION [ 'userid']. Comme je ne veux pas divulguer le jeton, l'appel ajax utilise un proxy par Zendesk, où le jeton réel est ensuite ajouté à l'appel.

Jusqu'ici tout va bien! Mais puisque le proxy a été utilisé, le SessionID dans login.php (url de l'appel ajax) est différent des autres pages. Par conséquent $ _SESSION ['userid'] n'est pas accessible sur les autres pages.

Mon premier travail autour idée était la suivante:

J'ajouté un autre en-tête personnalisé à l'appel, la remise du idSession à login.php et le mettre là avant de reprendre la session.

Cela fonctionne en quelque sorte, mais seulement lors du chargement de la page deux fois. Lors de la suppression du cookie et du chargement de la page pour la première fois, cela ne fonctionne pas. Le rafraîchir fonctionne ensuite à nouveau. Puis-je faire en sorte que ma solution de contournement fonctionne correctement la première fois que quelqu'un ouvre la page? Ou est-ce que je devrais aborder différemment cette question?

Merci les gars!

Répondre

0

Même problème que moi?

Rafraîchissez simplement la page après la réponse d'appel ajax. Maintenant, les variables de session seront disponibles.