1 回答
- 最新
- 投票最多
- 评论最多
0
【以下的回答经过翻译处理】 没有查看您的前端代码,很难确定您使用了哪些Amplify SDK调用来启动联合登录流程。基本上,如果您运行浏览器网络跟踪,Amplify应该会对Cognito User Pool触发一个/authorize调用来触发登录流程。为了从Amplify中执行此操作,通常会调用Auth.federatedSignIn() API调用。当然,这要求Amplify配置正确设置,其中身份提供者的名称、Cognito应用客户端ID、重定向URI都正确设置。
通常,我会使用OIDC/SAML支持的idP初始化Amplify的“oauth”配置,如下所示:
// AWS SDK & AWS Amplity Configuration
AWS.config.region = config.AWS_REGION;
Amplify.configure({
Auth: {
identityPoolId: config.AWS_COGNITO_IDENTITY_POOL_ID, // OPTIONAL - Amazon Cognito Identity Pool ID
region: config.AWS_REGION, // REQUIRED - Amazon Cognito Region
userPoolId: config.AWS_COGNITO_USER_POOL_ID, // REQUIRED - Amazon Cognito User Pool ID
userPoolWebClientId: config.AWS_COGNITO_CLIENT_ID, // OPTIONAL - Amazon Cognito Web Client ID
oauth: {
domain: config.AWS_COGNITO_CLIENT_DOMAIN_NAME,
scope: config.AWS_COGNITO_IDP_OAUTH_CLAIMS,
redirectSignIn: config.AWS_COGNITO_IDP_SIGNIN_URL,
redirectSignOut: config.AWS_COGNITO_IDP_SIGNOUT_URL,
responseType: config.AWS_COGNITO_IDP_GRANT_FLOW
}
}
});
然后您可以按以下方式调用基于idP的联合登录,其中提供者的名称与您在Cognito User Pool中配置的名称相匹配。
const { Auth } = Amplify;
// invoke amplify federated signin
Auth.federatedSignIn({
provider: config.AWS_COGNITO_IDP_NAME
});
相关内容
- AWS 官方已更新 3 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 2 年前