0

Ich versuche, unten zu bauen:nicht in der Lage zu Auth-Token mit Zugriffstoken austauschen - Umleitung uri missmatch

enter image description here

durch folgende: this Schritte

jedoch i Empfang halten uri missmatch umleiten, wenn ich versuchte, um den auth-code (gegeben durch meine mobile app) auf google server zu übertragen - was ich nicht verstehen konnte, da technisch keine umleitung uri für meinen fluss benötigt wird ...

hier sind die details s:

in Android-Client:

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
     .requestScopes(new Scope(Scopes.DRIVE_APPFOLDER)) 
     .requestServerAuthCode(serverClientId, false) 
     .build(); 
/**** bla.... ****/ 
GoogleSignInAccount acct = result.getSignInAccount(); 
String authCode = acct.getServerAuthCode(); 
/**** android app will send this authCode to my server ****/ 
/**** sample authCode: 4/Jny2Mxxx3x09sy4pqY3ZAwSTEz8rw2xxxxC-4VxxxxM 

in meinem Backend-Server:

try: 
    # i receive authCode correctly from android app. 
    # and use authCode to exchange to Access Token to google server as below: 
    credentials = client.credentials_from_clientsecrets_and_code(
        app.config.get('GG_APP_SECRET'), 
        ['https://www.googleapis.com/auth/plus.me', 'profile', 'email'], 
        authCode) 
except Exception as e: 
    log.info('>>>>> I always receive: redirect uri missmatch here: %s <<<<<', e) 
    return generate_response(code=400, error=False, type='Fail', message=str(e)) 

dies ist curl von meinem Backend-Server:

curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{ \ 
    "authCode": "4/HP_cP_t70pgBrxxx7sjzCil7kaUHkxxxerdkMxxxrRg" \ 
}' 'http://localhost:5005/api/user/register/gg' 

dies meine Konsole Einstellungen ist:

enter image description here

Fragen:

ist die serverClientId in Android-Client annehmen, die clientID von oben Bild zu sein?

Was ist die Weiterleitung URI, die ich in der Google-Konsole oben setzen sollte?

Was sollte ich für meine Redirect-URI einstellen/konfigurieren? oder gibt es bestimmte einstellungen, die ich tun muss?

+0

betrachten die anruf http Endpunkte direkt, anstatt zu versuchen, herauszufinden, was die Bibliothek tut. Es sind nur zwei einfache HTTP-POSTS, die Sie im oauthplayground sehen können. – pinoyyid

+0

Danke, aber das Hauptproblem hier ist, warum Google mir sagte, dass uri missmatch? Und ich weiß nicht, was redirect uri ist, dass ich seit meinem Fall hybriden Fluss setzen sollte, gibt es keine Umleitung uri. – AnD

+0

Wie wäre es mit dem Einfügen Ihres Codes, damit wir sehen können, was Sie versuchen zu tun? – pinoyyid

Antwort

0

Ok ich gehe es,

wenn Sie this

sehen Sie fanden heraus:

def credentials_from_clientsecrets_and_code(filename, scope, code, 
              message=None, 
              redirect_uri='postmessage', 
              http=None, 
              cache=None, 
              device_uri=None): 

und Sie erkennen, dass redirect_uri = 'Postmessage', die in meinem Fall habe ich nicht Post Botschaft.

so, was ich tun ist, zu entsprechen, dass redirect_uri mit authorize redirect uri, die ich

so für meinen Fall in meiner Frage in google Konsole oben haben, ich meine Python-Code ändern:

credentials = client.credentials_from_clientsecrets_and_code(
        app.config.get('GG_APP_SECRET'), 
        ['https://www.googleapis.com/auth/plus.me', 'profile', 'email'], 
        authCode, redirect_uri='https://developers.google.com/oauthplayground') 
Verwandte Themen