66 votes

Plusieurs Valeurs de Portée de oauth2

J'essaie de poster de nombreuses valeurs de portée pour permettre à ma demande pour certains services google...

J'ai essayé avec deux champ de saisie

<input type="hidden" name="scope" value="https://www.googleapis.com/auth/calendar" />  
<input type="hidden" name="scope" value="https://www.googleapis.com/auth/userinfo.email" />

et avec un champ de saisie avec + séparateur

<input type="hidden" name="scope" value="https://www.googleapis.com/auth/calendar+https://www.googleapis.com/auth/userinfo.email" />  

Quand j'envoie mon formulaire avec un seul de la portée de l'oeuvre. sinon, avec de nombreuses champ d'application valeur de redirection google moi avec cette description de l'erreur :

http://localhost:49972/redirect.aspx#error=invalid_request&error_description=OAuth+2+parameters+can+only+have+a+single+value:+scope&error_uri=http://code.google.com/apis/accounts/docs/OAuth2.html 

Dans le google de commencer avec oAuth2 il fonctionne avec deux valeurs de portée.

Voici mon code :

  <form id="form1" method="post" action="https://accounts.google.com/o/oauth2/auth?" >
    <div>
        <input type="hidden" name="response_type" value="code" />
        <input type="hidden" name="client_id" value="my client id" />
        <input type="hidden" name="redirect_uri" value="http://localhost:49972/redirect.aspx" />
        <input type="hidden" name="scope" value="https://www.googleapis.com/auth/calendar" />
        <input type="hidden" name="scope" value="https://www.googleapis.com/auth/userinfo.email" />

        <input type="hidden" name="state" value="/profile" />
        <input type="submit" value="go" />
    </div>
    </form>

128voto

Steve Bazyl Points 3314

Vous étiez sur la bonne voie lorsque vous combinée à un seul champ . Il devrait y avoir qu'un seul champ de paramètre dans la requête, avec les valeurs séparées par des espaces. Si vous êtes à la mettre dans une forme comme ça, le navigateur va prendre soin de l'encodage de l'espace pour vous.

<input type="hidden" name="scope" value="https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/userinfo.email" />

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X