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?
Avez-vous enregistré votre application avec Google? – Grace
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