2013-07-25 4 views
5

J'utilise l'API distante GAE pour accéder au magasin de données de mon application. L'authentification à GAE est faite en utilisant remote_api_stub.ConfigureRemoteApi avec une fonction d'authentification qui retourne un nom d'utilisateur et un mot de passe.API Google App Engine à distance + OAuth

Existe-t-il un moyen d'authentification à l'aide d'un access_token, par exemple OAuth ou OAuth 2.0?

+0

ConfigureRemoteApi possède un paramètre rtok. Peut-on utiliser le jeton OAuth? Je n'ai pas essayé. – jacob

+0

'rtok' est seulement pour les recherches app_id. (à partir de la docstring 'ConfigureRemoteApi') > rtok: le jeton de validation à envoyer avec les recherches app_id. Si aucun, un jeton aléatoire est utilisé. et dans le code ci-dessous, vous pouvez voir: ' sinon app_id: app_id = GetRemoteAppIdFromServer (serveur, chemin, rtok) ' Il semble être seulement utile pour vérifier si la app_id donnée existe sur App Moteur, pas pour l'authentification réelle pour remote_api_shell – Bodhi

Répondre

3

Il existe une solution pour les comptes Google configurés pour utiliser la validation en deux étapes.

À l'heure actuelle, vous voyez probablement une « BadAuthentication InvalidSecondFactor » erreur jeté, comme vous n'êtes pas capable de se connecter correctement à partir du shell.

Pour résoudre ce problème, vous aurez besoin d'un App Password qui autorise la application pour accéder à vos ressources compte Suivez le tutoriel et utiliser le mot de passe généré et le nom d'utilisateur d'un administrateur de la cible App App Engine comme les informations d'identification pour l'API à distance

MISE à JOUR:..

de plus, vous pouvez prendre regardez le fichier remote_api_stub.py du A ppEngine SDK. Vous trouverez une famille de méthodes appelées _ConfigureRemoteApiWith * (notez le underscore), tels que:

  • _ConfigureRemoteApiWithKeyFile
  • _ConfigureRemoteApiWithComputeEngineCredential
  • _ConfigureRemoteApiWithOAuthCredentials

méthodes elles-mêmes sont bien documentés, s'il vous plaît prendre un coup d'oeil à leurs docstrings. Ils vous permettront de vous authentifier avec des méthodes plus sûres que l'ASP habituel fourni par remote_api_stub.ConfigureRemoteApi().

+0

Merci, mais cela ne répond pas à ma question. Ma question concerne l'authentification sans mot de passe, et l'utilisation d'un jeton oauth à la place. – Tzach

+0

@Tzach avez-vous déjà réussi à faire fonctionner OAuth 2.0 avec GAE? Je suis intéressé à faire quelque chose de similaire. – mba12

+0

@ mba12 J'ai mis à jour ma réponse pour plus d'informations. – cjlallana

0

Vous ne pouvez pas utiliser OAuth2 pour vous connecter à votre application avec remote_api_stub/shell. Cette option n'est pas fournie.