Question

Je développe une application Java où je suis OAuth 3 la mise en œuvre à l'aide gdata jambes google en Java. Cette application est inscrit sur Google App Engine. À la première étape, je reçois la demande non autorisée jeton avec succès. Je stocke ce jeton en session et créer un lien en utilisant createUserAuthorizationUrl (oauthParameters). Puis cliquant sur le lien, il me rediriger vers « Autoriser l'accès page ».

Maintenant, même si j'accorde l'accès, il ne me montre pas cette page . Mais, il me redirige vers l'URL de mon rappel. Cependant, cela semble bon. Mais, il n'ajoute aussi la section Mon compte . Ici, je stocke oauth_token en session.

Lorsque vous vous redirigé, l'URL de cette page contient oauth_token & oauth_verifier, les deux! Maintenant, sur cette URL de rappel, j'ai un bouton d'envoi et d'action pour ensemble de accessTokenServlet.java à un. Le code de cette servlet est comme suit:

Maintenant, je vais envoyer la demande d'aller chercher jeton d'accès. Mon code est:

            GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();
            oauthParameters.setOAuthConsumerKey(CONSUMER_KEY);
            oauthParameters.setOAuthConsumerSecret(CONSUMER_SECRET);
            oauthParameters.setOAuthType(OAuthParameters.OAuthType.THREE_LEGGED_OAUTH);

            GoogleOAuthHelper oauthHelper = new GoogleOAuthHelper(new OAuthHmacSha1Signer());

            oauthParameters.setOAuthToken(request.getSession().getAttribute("oauth_token").toString());
            oauthParameters.setOAuthTokenSecret(request.getSession().getAttribute("oauth_token_secret").toString());

            try {
                String accessToken = oauthHelper.getAccessToken(oauthParameters);
                out.println("Access Token : " + accessToken);
            } catch (OAuthException e) {
                //System.out.print("Response Status : " + response.getStatus());
                out.println("Exception : ");
                e.printStackTrace();
                return;
            }

En cliquant sur le bouton soumettre, il imprime « jeton d'accès: » et rien! Aucun retour de jeton!

Je me fais mal au stade d'autoriser la demande de jeton lui-même. Mais, je ne reçois pas, quel problème se est généré?

Était-ce utile?

La solution

La page avec le vérificateur vous apparié à seulement devrait se produire si vous passez dans un oauth_callback de oob - cela indique que vous allez déplacer le vérificateur hors bande. Je recommande fortement l'utilisation oob pour quoi que ce soit, mais le débogage. , Vous devriez plutôt être une URL de définissez rappel et obtenir le vérificateur de la chaîne de requête.

Dans le code ci-dessus, je ne vois rien qui définit le vérificateur dans les paramètres OAuth, de sorte que votre problème est probablement. Vous aussi ne pas faire beaucoup de la manière de la gestion des erreurs, et c'est un morceau très important du flux OAuth - par exemple, une fois que vous l'avez travail, essayez d'annuler le processus de OAuth et voyez comment vos poignées d'application, il <. / p>

Vous ne verrez l'entrée dans votre liste de jetons émis une fois que vous avez complètement terminé le processus et obtenu un jeton d'accès amélioré.

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