【问题标题】:Automatically verify a user email when connecting using an AuthProvider in Firebase without using the sendEmailVerification method?在不使用 sendEmailVerification 方法的情况下,在 Firebase 中使用 AuthProvider 连接时自动验证用户电子邮件?
【发布时间】:2021-05-15 19:08:19
【问题描述】:

我已经使用 Firebase AuthProvider 在我的应用程序上实现了连接 GitHub、Twitter 和 Facebook 的按钮。即使它有效并且用户已注册并登录,但电子邮件地址仍被视为未验证。因为他们使用另一个平台上已经存在的帐户进行连接,所以我假设他们的电子邮件已经通过这些平台验证,所以我想跳过sendEmailVerification() 阶段并自动考虑他们的电子邮件经过验证。我如何在 Angular 中做到这一点?

这是我实现登录过程的方式:

async loginWithSocial(social: string) {
    try {
        let provider = null;
        if (social === "github") {
            provider = new firebase.auth.GithubAuthProvider();
        } else if (social === "twitter") {
            provider = new firebase.auth.TwitterAuthProvider();
        } else if (social === "facebook") {
            provider = new firebase.auth.FacebookAuthProvider();
        }
        const result = await firebase.auth().signInWithPopup(provider);
        const credential = result.credential;
        const user = await this.auth.signInWithCredential(credential);
        await this.router.navigate(["/", "home"]);
    } catch (error) {
        // do something
    }
}

【问题讨论】:

    标签: angular typescript firebase authentication firebase-authentication


    【解决方案1】:

    并非所有平台都会验证所有电子邮件地址。对于那些这样做(@gmail.com 的 Google,@facebook.com 的 Facebook 等),Firebase 身份验证会在用户配置文件的验证状态中反映这一点。

    如果你想对你的应用有更宽松的要求,你可以set the emailVerified flag from a trusted environment using the Admin SDK。这不能通过客户端 SDK 完成,因为这将允许任何用户设置自己的标志。

    【讨论】:

      猜你喜欢
      • 2019-03-13
      • 2021-05-11
      • 2021-02-27
      • 2011-12-29
      • 2021-09-09
      • 2021-10-21
      • 1970-01-01
      • 2019-05-28
      • 2011-06-12
      相关资源
      最近更新 更多