为什么AWS不允许我使用Google Plus进行身份验证?

时间:2015-07-22 10:24:56

标签: android amazon-web-services amazon-iam amazon-cognito google-plus-signin

我有一个Android项目,我正在尝试使用Google Plus与AWS Cognito进行身份验证。我已经设置了Facebook身份验证,但是当我使用Google Plus登录时,我收到400:未经授权的错误

目前,我必须将我的应用设置为“启用对未经身份验证的身份的访问权限”。这样Google Plus用户就可以使用它而不会获得未经授权的例外。

我从登录Google Plus返回的令牌很好,它也可以获取用户个人资料和详细信息,因此我认为这与IAM有关,也可能与Google客户端ID相关。在编辑身份池' AWS仪表板中的部分。

目前,我将来自Google Developers Console的OAuth 2.0服务帐户客户端ID作为' Google客户端ID'在编辑身份池' AWS仪表板中的部分

有人请帮忙:)。

2 个答案:

答案 0 :(得分:5)

由于Google处理客户ID的方式,我们实际上建议客户在为Google登录配置其身份池时使用我们的generic OpenId Connect support

  1. 转到AWS IAM控制台identity provider section
  2. 创建一个OpenId Connect Identity Provider,其提供者URL为https://accounts.google.com,Audience为客户ID之一。
  3. 按照步骤创建身份提供程序,稍后您将可以选择添加其他客户端ID。
  4. 转到Amazon Cognito Console
  5. 创建或编辑标识池并将OpenID连接标识提供程序添加到池中(它应显示在OpenId Connect提供程序中)。
  6. 如果您以后添加iOS或网络支持,请在Google控制台中创建新的客户ID,并将其添加到IAM控制台中的OpenId Connect提供程序。

答案 1 :(得分:1)

几天后我做到了!我的Cognito帐号终于与Google交谈:) 我的大问题是客户端ID,其中有两个:

  
      
  1. 在Google控制台中,我们有小客户端ID:   XXXXXXXXXXXX.apps.googleusercontent.com
  2.   
  3. 在JSON文件中,您可以在Google控制台下载,我们有大客户端ID:   client_id:XXXXXXXXXXXX-XXruakXlXXjeXqjXXtvXXXXXXXXXfjn.apps.googleusercontent.com
  4.   

所以,我把小号放在Cognito控制台上,在Google+客户端ID中

我在代码中写的最重要的一个:

String token = GoogleAuthUtil.getToken(appActivity, accounts[0].name,
"audience:server:client_id:XXXXXXXXXXXX-XXruakXlXXjeXqjXXtvXXXXXXXXXfjn.apps.googleusercontent.com");

我在Helper类中更改了代码的另一件事,那就是用于在google上登录的代码。谷歌的班主助手登陆奥运会,所以我也改为登录加号。