Question

Tous les fournisseurs OAuth J'ai authentifiées avec vous rediriger vers une page qui dit quelque chose comme « Merci, ... Vous allez être redirigé » et utilisations javascript de vous rediriger vers le redirect_uri fourni. J'aurais pensé qu'il était plus simple et plus rapide pour retourner une redirection HTTP. Pourquoi est-il toujours fait de cette façon?

Était-ce utile?

La solution

302 l'en-tête d'emplacement selon HTTP 1.1 ressemble comme ceci:

Location       = "Location" ":" absoluteURI

absoluteURI selon URI Syntaxe générique ne comprend pas de fragment identificateur. Celle avec le fragment est appelé URI-reference:

URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]   

Le détail est décrit dans @ la question de Levik: URL Fragment et redirections 302 . Je suis maintenant apprendre à la dure, mais l'essentiel est que 302 avec le fragment ne semble pas travailler avec IE8.

L'utilisation de JavaScript est probablement beaucoup plus fiable parce que vous êtes supposé passer les jetons d'accès par fragment.

Modifier : Je sais maintenant ce qui est arrivé avec IE8. IE ne respecte l'identificateur de fragment en-tête situé, mais il ignore l'une de l'URI de la source. Mon URL de redirection était http://example.com/oauth, que j'avais une redirection automatique à http s , https://example.com/oauth.

  1. OAuth redirige vers http://example.com/oauth#access_token=foo.
  2. Mon serveur redirige vers https://example.com/oauth.

Entre les étapes 1 et 2, IE8 a jeté l'identificateur de fragment, tandis que d'autres navigateurs redirigé vers https://example.com/oauth#access_token=foo.

La vraie réponse est 302 est ok, aussi longtemps que vous ne l'utilisez pas plus d'une fois sur l'URL.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top