Domanda

Sto sviluppando un'applicazione Java in cui mi sono l'attuazione OAuth 3 zampe con google GData in Java. Questa applicazione è iscritto su Google App Engine. Nella prima fase, sto ottenendo il non autorizzata di richiesta-token con successo. Sto memorizzazione di quella pedina in sessione e creare un collegamento mediante createUserAuthorizationUrl (oauthParameters). Poi, il clic sul link, mi reindirizzare a "Concedi accesso pagina".

Ora, anche se mi concedo l'accesso, non mostra me questa pagina . Ma, mi reindirizza alla mia richiamata URL. Tuttavia, questo sembra corretta. Ma, anche non aggiunge la voce sotto mio account . Ecco, io sono la memorizzazione dei oauth_token in sessione.

Quando si ottiene reindirizzato, l'URL di quella pagina contiene oauth_token & oauth_verifier, entrambi! Ora, in questo url richiamata, ho un tasto e azione insieme di per presentare a un accessTokenServlet.java. Il codice di questo servlet è la seguente:

Ora io mando richiesta per andare a prendere token di accesso. Il mio codice è:

            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;
            }

Mentre cliccando sul pulsante di invio, esso stampa "token di accesso:" & nulla! Nessun ritorni gettone!

io sono sempre sbagliato in fase di autorizzare la richiesta di token stesso. Ma, io non sto ottenendo, quale problema ma ho generato?

È stato utile?

Soluzione

La pagina con il verificatore si è collegato al dovrebbe accadere solo se si passa in un oauth_callback di oob - questo indica che sarà in movimento il verificatore out-of-band. Consiglio vivamente di non utilizzare oob per qualsiasi cosa, ma il debug. Invece, si dovrebbe essere la creazione di un URL di richiamata e ottenere il verificatore dalla stringa di query.

Nel codice di cui sopra, non vedo nulla che imposta il verificatore nei parametri OAuth, in modo che è probabile che il vostro problema. Non stai facendo anche molto in termini di gestione degli errori, e questo è un pezzo molto importante del flusso OAuth - per esempio, una volta che ce l'hai di lavoro, tenta di annullare il processo OAuth e vedere come le vostre maniglie di applicazione è <. / p>

Si vedrà solo la voce nella tua lista di token rilasciato dopo aver completato il processo e ottenuto un token di accesso aggiornata.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top