2017-08-24 2 views
1

Je suis en train de déboguer du code qui a été fait par d'anciens développeurs. Nous utilisons le code ci-dessous pour ouvrir une nouvelle fenêtre pour authentifier l'utilisateur (oAuth2 Flow).Accéder au popup window.open depuis le panneau des tâches en ligne d'Excel

var oAuth2Window = window.open (_embeddedStartUrl, "Authentification", "location = 0, status = 0, les barres de défilement = 1, redimensionnable = 1, hauteur = 600, largeur = 450");

Après l'utilisateur se connecte à succès, il essaie d'accéder à certaines propriétés sur oAuth2Window mais je reçois:

« Accès refusé ».

Les noms d'hôte sont sur des serveurs différents.

Cela se passe actuellement dans Excel Online dans un volet des tâches.

Cela a été testé il y a un certain temps et fonctionnait et est allé à la production.

La semaine dernière, j'ai vu ce problème se produire sur des environnements locaux et de production/live.

Comment cela a-t-il fonctionné précédemment? Sachant que vous ne pouviez pas accéder à la fenêtre contextuelle à partir d'un iframe

Répondre

1

Vous ne pourrez pas utiliser cette méthode à partir de vos différentes applications client. Au lieu de cela, vous devez router votre flux de travail OAuth via la fenêtre de l'API de dialogue.

Voir ce lien ici Using the Dialog APIs in an authentication flow (près du bas de la page).

+0

Merci Stewart de répondre. Y at-il un moyen pour moi de supprimer le "_host_info" qui est ajouté à la fin de l'URL? Cela provoque 500 erreurs API sur le serveur oAuth2. Ce que je ne contrôle pas –

+0

Je ne le crois pas. Etes-vous sûr que les paramètres de chaîne de requête supplémentaires provoquent les erreurs 500? Cela me semble inhabituel. Les paramètres d'URL normalement inconnus ou inattendus sont simplement ignorés. –

+0

J'utilise Oauth2 pour autoriser mon application. Ce que j'ai fait est que j'ouvre une page avec l'API de dialogue qui va à une de mes pages d'application locales. De là, je clique sur un bouton pour invoquer le flux, puis lorsque la redirection revient, je ne suis pas autorisé et j'utilise les fonctions de rappel pour renvoyer le jeton d'accès dont j'ai besoin dans le panneau des tâches. À quel point je ferme la fenêtre de dialogue api. –