windows - Hvordan angiver OAuth målgruppe (målgruppe: server: client\_id returnerer invalid\_scope)

Indlæg af Hanne Mølgaard Plasc

Problem



Vi skriver Windows app, og vi har også backend server. Og vi vil implementere Google Login. Så Windows app spørger brugeren, den modtager JWT token og sender den til vores server. Jeg token er der 2 nøgler: aud og azp. På vores andre platoformer (iOS, Android) er azp OAuth Client ID til applikationen fra Google Cloud Console og aud er OAuth Client ID til vores server. Men i Windows er de begge samme. På anden platform håndteres det af biblioteker leveret af Google, men i Windows bruger vi lavt niveau HTTP. Men vi kan ikke finde en måde at angive aud. Hvordan kan vi gøre det?


EDIT: Jeg fandt ud af om audience:server:client\_id:... i scope, men det virker heller ikke for mig. Det giver mig Error: invalid\_scope.


Dette er anmodningen (ved hjælp af HTTPie):


http -v https://accounts.google.com/o/oauth2/auth client\_id==windows-ios-app-client\_id.apps.googleusercontent.com redirect\_uri==my.bundle.id: response\_type==code 'scope==audience:server:client\_id:server-client-id.apps.googleusercontent.com'

GET /o/oauth2/auth?client\_id=windows-ios-app-client\_id.apps.googleusercontent.com&redirect\_uri=my.bundle.id\%3A&response\_type=code&scope=audience\%3Aserver\%3Aclient\_id\%3Aserver-client-id.apps.googleusercontent.com HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Host: accounts.google.com
User-Agent: HTTPie/0.9.2

Bedste reference


Jeg mener, at vi bør give dette omfang, mens du beder om token. Dette gøres sandsynligvis automatisk, hvis vi bruger Google/Log-In-bibliotek, forudsat at vi indstiller server-klient-id.


[GIDSignIn sharedInstance].serverClientID = @"YOUR\_SERVER\_CLIENT\_ID\_HERE"


Forresten, hvis nogen søger en måde at implementere det samme ved hjælp af AppAuth. Jeg fandt ingen løsning endnu.



Send webklient-id som en parameter audience=WEB\_CLIENT\_ID, når du anmoder om token-slutpunkt.