我有一个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仪表板中的部分
有人请帮忙:)。
答案 0 :(得分:5)
由于Google处理客户ID的方式,我们实际上建议客户在为Google登录配置其身份池时使用我们的generic OpenId Connect support。
如果您以后添加iOS或网络支持,请在Google控制台中创建新的客户ID,并将其添加到IAM控制台中的OpenId Connect提供程序。
答案 1 :(得分:1)
几天后我做到了!我的Cognito帐号终于与Google交谈:) 我的大问题是客户端ID,其中有两个:
- 在Google控制台中,我们有小客户端ID: XXXXXXXXXXXX.apps.googleusercontent.com
- 在JSON文件中,您可以在Google控制台下载,我们有大客户端ID: client_id:XXXXXXXXXXXX-XXruakXlXXjeXqjXXtvXXXXXXXXXfjn.apps.googleusercontent.com
醇>
所以,我把小号放在Cognito控制台上,在Google+客户端ID中
我在代码中写的最重要的一个:
String token = GoogleAuthUtil.getToken(appActivity, accounts[0].name,
"audience:server:client_id:XXXXXXXXXXXX-XXruakXlXXjeXqjXXtvXXXXXXXXXfjn.apps.googleusercontent.com");
我在Helper类中更改了代码的另一件事,那就是用于在google上登录的代码。谷歌的班主助手登陆奥运会,所以我也改为登录加号。