【问题标题】:Decoding GoogleAuthUtil.getToken (Android)解码 GoogleAuthUtil.getToken (Android)
【发布时间】:2015-07-19 19:26:25
【问题描述】:

在我的代码中,我像这样获取 google+ id 令牌:

Bundle bundle = new Bundle();
                    bundle.putString(GoogleAuthUtil.KEY_REQUEST_ACTIONS,
                            "http://schemas.google.com/AddActivity http://schemas.google.com/BuyActivity");
                    String token = GoogleAuthUtil.getToken(context,
                          Plus.AccountApi.getAccountName(mGoogleApiClient), scope,bundle);

它返回一个 76 个字符的序列,而我应该收到类似的东西:

{
  'issued_to': 'xxxxxx.apps.googleusercontent.com',
  'user_id': 'yyyyyy',
  'expires_in': 3457,
  'access_type': 'online',
  'audience': 'xxxxxx.apps.googleusercontent.com',
  'scope': 'https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile',
  'email': 'xxxxx@yyyyy.com',
  'verified_email': True
}

https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=xyz 也返回此错误消息:

{
 "error_description": "Invalid Value"
}

任何想法我做错了什么? 我必须解码吗?如果有怎么办?

【问题讨论】:

    标签: java android google-play-services token decode


    【解决方案1】:

    76 个字符表示它是一个 Base64 键,这就是您将其解码为字节数组的方式(如回答 here):

    byte[] data = Base64.decode(base64, Base64.DEFAULT);
    String text = new String(data, "UTF-8");

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-28
      • 1970-01-01
      • 2016-01-17
      • 2015-08-03
      • 2013-12-04
      • 2013-12-02
      • 1970-01-01
      • 2016-03-14
      相关资源
      最近更新 更多