【发布时间】:2018-09-09 05:18:47
【问题描述】:
根据Scopes for Google SignIn,没有“电话”范围,唯一的范围是openid、电子邮件、个人资料。
我的 Cognito 用户池有一个电话用户属性,它是必需的。
对于直接在用户池中注册的用户,他们在亚马逊的托管 UI 中输入他们的电话号码,该 UI 会在注册表单中显示一个电话字段,一切都很好。
对于通过 Google 注册的用户,他们会收到错误消息。我已经将其追溯到 Google 没有通过 phone_number 发送并且从 Google 到用户池属性的映射失败的事实。如果我创建一个新池,它不需要与 Google 的 phone_number 联合,那么我需要该属性的那一刻它会失败,尽管我测试的 Google 帐户有一个 phone_number。
使用 Google 联合到 Cognito 用户池登录时真的无法映射手机吗?
托管的注册 UI 是否可以为我的 Google 用户显示一个字段,要求他们填写他们通过 Google 进行身份验证和重定向到我的重定向 URL 的托管 UI 之间的电话号码?
替代解决方案?
【问题讨论】:
-
您好 mipnw,您找到解决方案了吗?我在这里遇到了同样的问题。
-
那是大约一年前的事了,所以我不记得这个特定问题的确切结果了。我认为 AWS 用户池的这个问题是我在使用 AWS 时遇到的许多问题之一,例如应用程序身份验证、奇怪的 OAUTH 行为、糟糕的文档、糟糕的移动 API,最终我完全放弃了 AWS 身份验证。
-
即使我遇到了同样的问题。即使我们在用户池的身份提供者中添加 googleapis.com/auth/user.phonenumbers.read,它仍然会寻找电话号码。 Google Contacts API 发送电话号码,但 google 的手机号码格式与 cognito 不同,因此 cognito 会抛出 invalid phone number format
-
您好遇到同样的问题,您能找到任何解决方案吗?尝试在 google 控制台中添加 googleapis.com/auth/user.phonenumbers.read 范围并将其映射到我的 aws 帐户中,但它会在无法找到电话号码的情况下引发错误。有什么解决办法吗?
标签: amazon-web-services google-signin amazon-cognito aws-cognito