firebase:如何链接电子邮件验证和密码

Posted

技术标签:

【中文标题】firebase:如何链接电子邮件验证和密码【英文标题】:firebase: how to link email verification and password 【发布时间】:2018-12-30 14:21:11 【问题描述】:

我已经使用电子邮件和密码对用户进行身份验证,但我想在 react native 中使用 firebase 添加电子邮件链接验证。

所以,用户必须提供他/她拥有的正确电子邮件地址和密码,我该如何链接它们或创建它。

这是我的注册代码:

export const signupUser = (firstName, lastName, userName, email, password) => async dispatch => 
    dispatch( type: SIGNUP_SPINNER );
    try 
        let user = await firebase.auth().createUserWithEmailAndPassword(email, password);
        if(user) 
            const  currentUser  = firebase.auth();
            // add displayName 
            await currentUser.updateProfile(
                displayName: `$firstName $lastName`
            );
            await firebase.database().ref(`/users/$currentUser.uid/profile`)
                .push(firstName, lastName, userName, email)
                .then(async () => 
                    dispatch( type: SIGNUP_INITIAL_STATE );
                );
        
     catch(err) 
        dispatch( type: SIGNUP_USER_FAIL, payload: 'something went wrong, please try again!!!' );
    

【问题讨论】:

【参考方案1】:

可以在移动应用中通过多种方式完成电子邮件验证:

    让用户通过手机自带的本机账号登录 (https://github.com/react-native-community/react-native-google-signin)。 如果用户能够通过谷歌登录意味着他是合法用户 帐号 发送电子邮件 (Sending automated emails from Firebase through Google Cloud Platform (no third parties)) 像链接一样 https://yourserver.com/?token= 和 如果用户打开此链接,则激活电子邮件。在这种情况下,您需要 服务器上您自己的脚本。 发送电子邮件 (Sending automated emails from Firebase through Google Cloud Platform (no third parties)) 像链接一样 yourScheme://verification?token 和 在您的设备上处理此方案并通过以下方式验证帐户 端点。它不太安全,但您不需要服务器。

【讨论】:

实际上我想要这样的事情:1)使用电子邮件和密码注册 2)电子邮件链接验证 3)当电子邮件验证时,用户可以使用他们提供的电子邮件和密码登录。所以有两个身份验证。一个是邮箱和密码,另一个是邮箱验证,那我怎么存档呢

以上是关于firebase:如何链接电子邮件验证和密码的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 无密码电子邮件身份验证无法在 iOS 上打开应用

如何使用与 Firebase 提供的不同的电子邮件服务来验证电子邮件和更改密码?

密码重置电子邮件中的 Firebase 传递状态(继续应用链接)

Expo App 中的 Firebase 无密码电子邮件身份验证错误

React-native hooks 表单验证

在 Flutter 上使用电子邮件和密码进行 Firebase 身份验证的示例?