Google OAuth und lokaler dev
-
18-09-2019 - |
Frage
Ich versuche, Google OAuth zu verwenden, um einen Benutzer der Kontakte zu importieren. Um einen Verbraucher und geheimen Schlüssel zu bekommen für Sie App haben Sie Ihre Domain bei https zu überprüfen: // www .google.com / accounts / ManageDomains Google ermöglicht es Ihnen, nur Domains ohne Ports zu verwenden. Ich mag die App vor Ort so in der Regel (Facebook, Linkedin Apps) i Benutzer einen Reverse SSH-Tunnel zum Beispiel http testen und bauen: / /6pna.com:30002
Hat jemand einen Tunnel mit Google OAuth verwenden. Funktioniert es? Bisher überprüfte ich meine apps Domain nur, aber meine Anfragen kommen aus dem Tunnel (anderen Domäne) so OAuth nicht (obwohl ich bei Google bekommen und ermächtigen, meine app)
Alle Tipps, Hinweise? Dank
Lösung
auch nach Versuch und Irrtum fand ich heraus, dass der Antrag ‚s Domäne irrelevant ist
Andere Tipps
ich verwende nur die offizielle gdata Google Auth Bibliothek http://code.google. com / p / gdata-python-client
Hier ist ein Code
google_auth_url = None
if not current_user.gmail_authorized:
google = gdata.contacts.service.ContactsService(source=GOOGLE_OAUTH_SETTINGS['APP_NAME'])
google.SetOAuthInputParameters(GOOGLE_OAUTH_SETTINGS['SIG_METHOD'], GOOGLE_OAUTH_SETTINGS['CONSUMER_KEY'],
consumer_secret=GOOGLE_OAUTH_SETTINGS['CONSUMER_SECRET'])
if not request.vars.oauth_verifier:
req_token = google.FetchOAuthRequestToken(scopes=GOOGLE_OAUTH_SETTINGS['SCOPES'],
oauth_callback="http://"+request.env.http_host+URL(r=request,c='default',f='import_accounts'))
session['oauth_token_secret'] = req_token.secret
google_auth_url = google.GenerateOAuthAuthorizationURL()
else:
oauth_token = gdata.auth.OAuthTokenFromUrl(request.env.request_uri)
if oauth_token:
oauth_token.secret = session['oauth_token_secret']
oauth_token.oauth_input_params = google.GetOAuthInputParameters()
google.SetOAuthToken(oauth_token)
access_token = google.UpgradeToOAuthAccessToken(oauth_verifier=request.vars.oauth_verifier)
# store access_tonen
#google.GetContactsFeed() # do the process or do it in ajax (but first update the user)