带有firebase和改造的Google Cloud Endpoints v2

时间:2017-06-08 14:23:24

标签: android retrofit2 google-cloud-endpoints

我想用用户身份验证来保护我的API方法。最适合Android应用程序的似乎是firebase身份验证,我正在使用它。 现在,如何使用经过身份验证的firebase用户进行改造甚至卷曲来调用我的API方法。

我已关注here中的示例,并添加了以下API方法:

@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();
    }

现在,它应该如何调用?我试过了

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

但我收到了

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

1 个答案:

答案 0 :(得分:0)

使用改装我必须添加 @Header("Authorization") String token 到api方法参数和代码中 "Bearer " + token 作为代币。