问题标签 [amazon-cognito-facebook]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
304 浏览

ios - 什么是通过刷新 id-token 的正确方法。AWSMobileClient 迅速?

我正在使用 aws-cognito UserPool(通过 AWSMobileClient)对用户进行身份验证以访问 AWS 服务。目前,用户可以选择使用 Hosted UI 选项通过 Phone、Google 和 Facebook 登录,该选项反过来提供 ID-token、Access-token 和 Refresh-token。根据 AWS 文档,id-token 最长有效时间为 1 小时,并且 refresh-token 会自动更新 id-token(前提是刷新令牌有效且未过期)。要在初始值过期时请求新的 id-token,我调用:

AWSMobileClient.default().getTokens(<#T##completionHandler: (Tokens?, Error?) -> Void##(Tokens?, Error?) -> Void#>)

当用户通过电话号码登录并成功返回我更新的 ID 令牌时,这工作正常。但是,如果用户通过社交日志记录方法登录,则在调用上述函数时,我会从 AWS 中获得用于登录的插入式 UI。

在社交登录的情况下,我该如何停止这种行为?

0 投票
1 回答
252 浏览

ios - AWSMobileClient 初始化在卸载并安装应用程序后返回用户状态“SignedIn”

我正在使用 aws-cognito UserPool(通过 AWSMobileClient)对用户进行身份验证以访问 AWS 服务。目前用户可以选择通过 Phone、Google 和 Facebook 使用 Hosted UI 选项登录,这需要通过以下方式初始化 AWSMobileClient。AWSMobileClient.default().initialize(<#T##completionHandler: (UserState?, Error?) -> Void##(UserState?, Error?) -> Void#>) 返回当前用户状态。

用例:我通过 UserPool 登录我的应用程序,然后卸载应用程序。重新安装应用程序时,我获取当前用户状态,它返回为“已登录”。

我怎样才能停止这种行为?

0 投票
1 回答
257 浏览

terraform - 使用 Terraform 在 AWS Cognito 用户池中设置 Facebook API 版本

在将 AWS Cognito 用户池与它集成时,我找不到任何有关如何在 Terraform 中设置 Facebook API 版本的文档。

可以部署以下块而不会出现任何错误:

但随后在 AWS 仪表板中,我看到了以下警告:

最新版本是v6.0,怎么设置呢?

0 投票
2 回答
279 浏览

amazon-web-services - Amazon Cognito:尝试注销时出错

这是请求 uri

它重定向到这个 uri,错误出现在图像中

在此处输入图像描述

请注意:登录后一切正常

0 投票
0 回答
229 浏览

amazon-web-services - Cognito:Facebook 属性在 UI 或 ID 令牌中不可用

昨天,我在 Cognito 中设置了一个配置了 Facebook Provider 的用户池,允许我们 iOS 应用程序的用户注册 Facebook。这已经实施并且注册工作完美。

我遇到的问题是 Facebook 属性(例如生日、名字、姓氏、性别等)没有同步到 Cognito 用户池中。属性映射是根据下面的屏幕截图设置的,并且客户端也已配置为读取这些属性。它们在 UI 中不可见,在 Cognito 生成的 ID/访问令牌中也不可见。

通过 iOS 应用登录时,需要“openid”、“profile”和“email”范围。Facebook 身份提供者设置了以下授权范围:“email,public_profile,user_gender,user_birthday”,因此那里不应该有任何权限问题。

关于为什么不复制这些字段的任何想法?姓名和电子邮件可见,但其他不可见。

在此处输入图像描述 在此处输入图像描述

在此处输入图像描述

0 投票
0 回答
728 浏览

facebook - Aws 放大 facebook 登录应用程序 - 检测到损坏的 url

真的很简单的问题。如何让我的 Facebook 应用程序上线。

采取的步骤......我通过运行创建了一个非常基本的项目:

  • 创建反应应用程序;
  • 放大初始化;

然后我在 facebook 中为开发人员创建了一个 facebook 应用程序。

使用我运行的那个应用程序的应用程序 ID 和应用程序密码:

  • 放大添加身份验证
  • 放大推动

那时我的放大项目是在 AWS 中创建的。我取了用户池域并将其添加到 facebook 应用程序中: 应用程序域:[Userpool 域] 站点 url:https://[Userpool 域]/oauth2/idpresponse

此时我可以在我的 react 项目中使用 aws amplify 来使用 facebook 登录,因此必须正确设置它。

但我无法设置我的 facebook 应用程序,因为它抱怨检测到损坏的 url。并且使用共享调试器,我看到 https:///oauth2/idpresponse url 返回响应代码 400。

谁能告诉我。我该如何解决??

这是facebook抛出的错误: 在此处输入图像描述

0 投票
1 回答
48 浏览

amazon-cognito - Cognito 如何处理刷新 ID 和访问令牌?

我无法理解刷新令牌在 Amazon Cognito 中的工作原理。我知道在成功验证后,Cognito 会返回IDaccessrefresh tokens。ID 和访问令牌的有效期为一小时,之后 Cognito JS SDK 使用刷新令牌来请求新的 ID 和访问令牌。

我的问题是,在刷新时,Cognito 是使用下划线身份验证提供程序重新对用户进行身份验证,还是只是返回新的访问令牌?

例如,如果我使用 Facebook 作为身份验证提供程序,那么在刷新时,Cognito 会要求用户再次通过 Facebook 登录吗?如果没有,有没有办法每隔几个小时强制重新认证?

0 投票
2 回答
1335 浏览

amazon-cognito - 如何禁用通过身份提供商创建的 AWS Cognito 用户池帐户?

那里有任何 Cognito 用户池专家吗?我已经使用 Cognito 有一段时间了,但是这个让我有点难过。

  • 我们允许用户使用 Facebook 等社交账户注册和登录,这些账户在用户池中设置为身份提供者。

  • 用户需要先完成自定义注册表单才能使用主应用程序 - 我们不使用托管 UI 进行登录或注册

  • 自定义注册过程的一个步骤允许用户指示随后要使用的社交提供者

  • 这使我们能够从社交服务提供商那里撤回用户的电子邮件、名字和姓氏,这很棒 - 我们目前使用 cognito 客户端和回调来执行此操作

  • 但是这样做,这会在注册过程完成之前在 Userpool 中提供一个用户 - 事实上这是有道理的 - 为了让 Cognito 向我们提供它需要调用到社交提供者 /userinfo 端点以填充用户数据

  • 所以,我们现在遇到的问题是,当用户完成注册过程的一半时,我有一个确认的用户帐户 - 例如。在用户完成注册过程之前

  • 这是一个问题,因为用户可以使用他们的社交登录名登录应用程序,而无需完成注册过程

所以在我看来,我有两个选择:

  • PostConfirmation Lambda 触发器,它使用 cognito-idp SDK 在用户确认后立即禁用用户
  • 不要使用 Cognito 来获取用户信息,例如名字、姓氏、电子邮件、图片等 - 但是这需要我们为每个当前和未来的社交提供商编写一个解决方案,这不是我热衷的事情

我错过了一些明显的东西吗?

提前致谢!

0 投票
0 回答
61 浏览

amazon-web-services - 如何从 Cognito 用户池获取联合 API 的访问令牌

我正在使用 AWS Cognito 用户池。我已经设置了一个身份提供者。比方说脸书。

我能够登录,并且看到用户出现在用户列表中。

现在,我希望能够代表用户使用访问令牌向 Facebook API 发出请求。

如何获取此访问令牌?

我似乎只能获得 Cognito 的访问令牌,这当然不适用于 Facebook。

谢谢!

0 投票
0 回答
1613 浏览

javascript - 使用 Facebook 登录 AWS Cognito

我有一个 Angular 10 网站。我有一个 AWS Lambda (ASP.NET Core 3.1),它使用 AWS Cognito 为具有电子邮件/密码的用户进行身份验证。但我想让用户也可以使用 Facebook(最终是谷歌)登录。在 Facebook/Google 场景中,我的想法是暂时不允许直接访问 AWS 服务(如 S3 等),而是通过不记名令牌与我的其他 lambda 交互。我有一个 Cognito 用户池,为此我创建了 Facebook 身份提供者和映射。我在某处读到我需要一个身份池。所以我创建了它并将我的 Cognito 用户池作为提供商和 Facebook 放入。

使用 JavaScript 代码:

我可以得到 Facebook 身份验证响应没问题。然后使用您在每个博客、Stack Overflow 帖子甚至 AWS 文档中看到的这段代码(当然,替换为我自己的 IdenityPoolId):

我可以取回会话令牌(除了大量其他内容,如 accesKeyId、identityId 和 secretAccessKey)。

但是我该如何处理该会话令牌?也许我很困惑,但我认为因为 Facebook 字段和 Cognito 字段之间存在映射,所以 Facebook 用户会以某种方式迁移到 Cognito 用户池中,我可以为我的其他 lambdas 获取该用户的 JWT 令牌。但是在检查 AWS 仪表板后,我可以在身份池中看到登录(我认为),但没有相应的用户池条目。

在此处输入图像描述

我是否必须以某种方式手动迁移它(使用 AWS JavaScript 开发工具包)?我不想使用 Amplify 库。我想错了吗?我是否以某种方式将会话令牌用作其他 lambda 的承载令牌?我是否需要以某种方式将该人添加为用户池用户?