2009-12-16 3 views
0

J'essaie d'utiliser le mécanisme de jeton de demande de Google. J'ai l'intention de l'utiliser pour une application que j'ai commencé à développer pour accéder aux données Orkut en utilisant l'API OpenSocial. J'ai lu ce document qui explique les étapes pour obtenir un jeton pour une application installée. Ce document vous indique d'utiliser la méthode OAuthGetRequestToken de l'API Google OAuth pour acquérir un jeton de demande. Accéder au manuel de cette fonction (available here). Mais le paramètre oauth_consumer_key, qui est requis, demande le "Domaine identifiant l'application web tierce", mais Je n'ai pas de domaine, il s'agit d'une application installée. Donc, ma question est, que dois-je mettre dans ce paramètre dans ce cas? J'utilise oauth_playground pour lancer mes tests.Jeton de demande OAuth pour une application installée

Thx

+0

Avez-vous enregistré votre application avec Google? – Grace

+0

Je n'ai pas fait. Pour autant que je sache, cela est fait uniquement pour les applications web (qui ont un domaine). Dans mon cas, c'est une application locale, installée dans l'ordinateur de l'utilisateur. – Andres

Répondre

1

D'après ce que j'ai lu dans la documentation, l'instruction suivante sur l'obtention d'un jeton de demande implique que vous passez simplement « anonyme » comme la clé du consommateur ...

« 1. installé L'application contacte le service d'autorisation Google pour demander un jeton de demande pour un ou plusieurs services Google La demande est signée à l'aide de la clé de consommateur/secret "anonyme". (OAuthForInstalledApps)

+0

Oui, j'ai déjà lu à ce sujet et essayé de le tester en utilisant oauth playground (http://googlecodesamples.com/oauth_playground/). Il fonctionne avec des portées comme Open Social mais pas avec Orkut que j'essaie d'utiliser. Mais merci quand même – Andres

0

L'astuce consiste à créer un processus d'authentification hybride. Vous enregistrez une application Web dans un domaine que vous possédez, autorisez les utilisateurs pour une application Web via le processus OAuth for Web Apps, puis implémentez un mécanisme permettant à leur application installée de récupérer cette autorisation à partir de l'application Web.

Je pense que l'application installée enverrait à votre site une demande pour une paire de clés. Il recevrait une clé d'initialisation et une clé d'autorisation, que vous stockeriez dans une base de données sur le site Web pour une utilisation unique. L'application utilisera alors n'importe quel mécanisme pour lancer un navigateur externe, pointant vers le yourdomain.com/authorizestart.php?initiate=[initiate code]. Le site stocke le code dans une variable de session, puis envoie l'utilisateur à Google pour s'authentifier. Lorsque l'authentification est réussie et que Google renvoie l'utilisateur avec le jeton suivant, vous le stockez dans l'entrée de la base de données relative à la clé d'initialisation.

L'utilisateur ferme le navigateur, clique sur un bouton « fait » dans votre application, et l'application envoie alors une demande à yourdomain.com/tokenretrieve.php?authorize=[authorize~~V~~singular~~3rd clé]

Votre site semble en le token Google et le retransmet, l'application complète le processus Oauth.

Le problème avec ceci est que vous devez partager le "secret du consommateur" que vous avez créé dans le processus d'enregistrement avec l'application. Quelqu'un pourrait le décompiler ou tenter de capturer sa sortie et découvrir votre clé secrète qui fait partie de la méthode de cryptage des réponses des serveurs de Google. Cela dit, comment est-ce pire que d'utiliser "anonyme" comme votre secret de consommation?

Questions connexes