javascript - 放大联合登录不返回 Facebook 的电子邮件

标签 javascript oauth-2.0 amazon-cognito aws-amplify

我正在使用 AWS Amplify 添加社交签名。通过谷歌,我收到了用户的电子邮件,但它在 facebook 中丢失了。
这是我的代码:

  federatedSignIn(provider: any): void {
    switch (provider) {
      case 'facebook':
          console.log("Authenticating using Facebook");
          Auth.federatedSignIn({ provider: CognitoHostedUIIdentityProvider.Facebook });
          break;
      case 'google':
        console.log("Authenticating using Google");
        Auth.federatedSignIn({ provider: CognitoHostedUIIdentityProvider.Google });
        break;
    }
     
  }
这就是“预注册” Lambda 所认为的事件。
{
    "version": "1",
    "region": "us-east-1",
    "userPoolId": "us-east-xxxxxx",
    "userName": "Facebook_123456",
    "callerContext": {
        "awsSdkVersion": "aws-sdk-unknown-unknown",
        "clientId": "123456abcd"
    },
    "triggerSource": "PreSignUp_ExternalProvider",
    "request": {
        "userAttributes": {
            "email_verified": "false",
            "cognito:email_alias": "",
            "phone_number_verified": "false",
            "cognito:phone_number_alias": ""
        },
        "validationData": {}
    },
    "response": {
        "autoConfirmUser": false,
        "autoVerifyEmail": false,
        "autoVerifyPhone": false
    }
}
用户池设置
enter image description here
enter image description here
属性映射
enter image description here

最佳答案

问题在于 <amplify-facebook-button>因为它使用身份池工作流而不是用户池工作流。使用 federatedSignIn() 创建自定义按钮工作。

  <button  slot="federated-buttons" (click)=customSignIn()>Facebook</button>
  customSignIn(): void{
    Auth.federatedSignIn({provider: CognitoHostedUIIdentityProvider.Facebook });
  } 
更多信息:https://github.com/aws-amplify/amplify-js/issues/8823

关于javascript - 放大联合登录不返回 Facebook 的电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68960054/

相关文章:

node.js - lambda 触发器回调 vs context.done

amazon-web-services - 在 Appsync 解析程序中访问 AWS Cognito 用户池属性

javascript - 如何使用 selenium webdriver 跟踪选项卡更新

javascript - 如何在两个列表框之间移动元素?

javascript - 不同顺序的列

java - Spring oauth2 不重定向到原始 url

javascript - 在 JavaScript 中将变量分配给函数与在 C# 中使用委托(delegate)之间有区别吗

c# - 带有 OAuth2 的 Youtube API v3 返回 "Received verification code. Closing..."

java - Spring oauth2 授权提供者

javascript - 使用 Amazon Cognito Refresh Token 在 javascript 中获取新 token