Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Firebase中使用createUserWithEmailAndPassword时阻止登录_Javascript_Reactjs_Firebase Authentication - Fatal编程技术网

Javascript 在Firebase中使用createUserWithEmailAndPassword时阻止登录

Javascript 在Firebase中使用createUserWithEmailAndPassword时阻止登录,javascript,reactjs,firebase-authentication,Javascript,Reactjs,Firebase Authentication,我想避免在将CreateUserWithEmail和Password与React和Firebase一起使用后自动登录。可能吗?这是我的密码。非常感谢 const SignUp = () => { const [email, setEmail] = useState(""); const [password, setPassword] = useState(""); const [displayName, setDisplayName] =

我想避免在将CreateUserWithEmail和Password与React和Firebase一起使用后自动登录。可能吗?这是我的密码。非常感谢

const SignUp = () => {
  const [email, setEmail] = useState("");
  const [password, setPassword] = useState("");
  const [displayName, setDisplayName] = useState("");
  const [error, setError] = useState(null);

  const createUserWithEmailAndPasswordHandler = async (event, email, password) => {
    event.preventDefault();

    try{
      const {user} = await auth.createUserWithEmailAndPassword(email, password);
      generateUserDocument(user, {displayName});
      const test = user.emailVerified;
      console.log("Verified: ",test,);
    }
    catch(error){
      setError('Error: ... '+error);
    };
    
    setEmail("");
    setPassword("");
    setDisplayName("");
               
            user.sendEmailVerification({url: process.env.REACT_APP_CONFIRMATION_EMAIL_REDIRECT="https://...my url.........."}); 
            console.log('Email is not verified '); 
            alert("email confirmation sent");

  };

创建帐户时,该帐户将自动登录。这是无法避免的

提出这一问题最常见的两个原因是:

  • 阻止用户在验证其电子邮件地址之前使用应用程序。在这种情况下,您有两种选择

  • 使用a登录用户。使用此流,用户的电子邮件地址在登录之前会自动验证
  • 在允许用户使用应用程序和访问其数据之前,检查用户的电子邮件地址是否已验证。您将在中执行此操作,以控制那里的导航,或在中执行此操作,以确保用户无法访问未经授权的数据
  • 因为您的应用程序的用户是为其他用户创建帐户的应用程序管理员

  • 这在Firebase客户端SDK中不受支持,因为这样的帐户创建应该通过服务器端完成

  • 但是,如果您坚持,您可以通过创建辅助
    FirebaseApp
    实例来创建用户,从而绕过此限制,如图所示

  • 我马上会添加一些链接