2017-06-08 4 views
0

Ich möchte meine API-Methoden mit Benutzerauthentifizierung schützen. Die beste Lösung für die Android-App schien eine Firebase-Authentifizierung zu sein, die ich verwende. Nun, wie rufe ich meine API-Methoden mit Retrofit oder sogar Curl mit authentifizierten Firebase-Benutzer.Google Cloud Endpoints v2 mit Firebase und Nachrüstung

Ich habe das Beispiel von here und hinzugefügt folgenden API-Methode gefolgt:

@ApiMethod(
      path = "firebase_user", 
      httpMethod = ApiMethod.HttpMethod.GET, 
      authenticators = {EspAuthenticator.class}, 
      issuerAudiences = {@ApiIssuerAudience(name = "firebase", audiences = {PROJECT_ID})} 
    ) 
    public Translation getUserEmailFirebase(User user) throws UnauthorizedException { 
     if (user == null) { 
      throw new UnauthorizedException("Invalid credentials"); 
     } 
     return new Translation(); 
    } 

Nun, wie es genannt werden sollte? Ich habe versucht,

curl \ 
    -H "Authorization: my-firebase-user-token-id" \ 
    https://my-api-link.appspot.com/_ah/api/something/v1/firebase_user 

aber ich erhalten

{ 
    "error": { 
     "errors": [ 
     { 
     "domain": "global", 
     "reason": "required", 
     "message": "Invalid credentials" 
     } 
     ], 
     "code": 401, 
     "message": "Invalid credentials" 
    } 
    } 
+0

Komm schon. Wie sollte der Auth-Header aussehen? Sie erwähnen es nirgends in Docs und API lib für Android ist in alpha ... –

Antwort

0

Retrofit Mit hatte ich @Header("Authorization") String token auf die api Methode param und im Code "Bearer " + token als Zeichen hinzuzufügen.

Verwandte Themen