angular - AWS Cognito - 直接联合身份提供商登录页面(没有 cognito 登录页面)
问题描述
我正在使用配置了 Office 365 (azure AD) 和 Google 联合身份提供商的 AWS Cognito 用户池。当我将我的用户池与我的Angular应用程序集成以进行用户身份验证时,我看到了一个 cognito 登录页面,我可以在其中使用用户池帐户/office 365/google 登录。如果我将身份提供者名称作为Office 365传递,有什么办法可以直接使用我的 office 365 登录(即直接重定向到 micronsoft 登录页面而无需此中间页面)?
解决方案
最不痛苦的方法是右键单击按钮并检查元素。按钮上有一个onclick
操作可将您带到 IdP。
直接导航到其中包含的 URL 会立即将您带到 IdP,而无需先转到 Cognito 托管 UI。
这实际上与端点的Cognito 官方文档中解释的相同AUTHORIZATION
,只是它已经为您完成了。这适用于任何 IdP/社交提供商,而不仅仅是 Azure AD。
例子
假设在检查元素后你有......
window.location.href='/oauth2/authorize?identity_provider=Facebook&redirect_uri=https://network.exampleloadbalancer.net/oauth2/idpresponse&response_type=CODE&client_id=6chta8di2d737altiugnidsoq9&state=AKRbmsZduQIQJpVGKo2wehrioXltqL12CYZMYotDjLKcSwWWQr+DSf8wmQ15ZHpSfA+ec7H4SQqsgmMyFcz9w/cp2fsQdnzC\/NbKnKJy+wxQlgHLItPHtOHbn9pocoNVV3iDr63g07BFVaqGjfC\/u4Be\/2krgtjtNQChhFSVk5tQ3mouleSSGHEZ+6bdfmb\/VkMdUPwVzKcSO2uFSg==&scope=openid'
并且您的 Cognito 域https://exampleloadbalancer.auth.us-east-1.amazoncognito.com
是
- 首先,删除所有
\
字符。(你的可能还没有) - 只需将 URL 部分连接在一起并将您的用户链接到生成的 URL。
完成结果:
https://exampleloadbalancer.auth.us-east-1.amazoncognito.com/oauth2/authorize?identity_provider=Facebook&redirect_uri=https://network.exampleloadbalancer.net/oauth2/idpresponse&response_type=CODE&client_id=6chta8di2d737altiugnidsoq9&state=AKRbmsZduQIQJpVGKo2wehrioXltqL12CYZMYotDjLKcSwWWQr+DSf8wmQ15ZHpSfA+ec7H4SQqsgmMyFcz9w/cp2fsQdnzC/NbKnKJy+wxQlgHLItPHtOHbn9pocoNVV3iDr63g07BFVaqGjfC/u4Be/2krgtjtNQChhFSVk5tQ3mouleSSGHEZ+6bdfmb/VkMdUPwVzKcSO2uFSg==&scope=openid
推荐阅读
- sql - 当查询包含多个 where 子句和聚合函数时,Oracle 查询继续运行
- javascript - 您能否捕获/识别对象是否在运行时作为函数被“调用”?
- java - 通过绕过 console.readPassword() 的 Eclipse 错误在 Eclipse IDE java 中屏蔽密码
- firebase - 错误:无法加载默认凭据。上下文:firebase login:ci 和 firebase auth:export
- c# - 当“GetBlockBlobReference”时,天蓝色块块属性为空
- python - pandas Timestamp 对象无法识别某些属性和方法
- c# - 我收到一条错误消息:System.IO.IOException:'目录不为空。'
- java - 从另一个服务(模块)Gradle 获取服务和模型
- apache - 如何使用 apache 提供预压缩文件
- pytorch - 词义消歧任务的 Pytorch BCE 损失没有减少