使用 Firebase 电子邮件链接完成登录后,用户未经过身份验证

问题描述 投票:0回答:1

我有一个登录表单,用户可以使用 Firebase 的电子邮件链接进行身份验证。之后,在 gmail 中,用户单击链接并导航到应该对他进行身份验证的某个路线,但这种情况没有发生。我的 sendSignInLinkToEmail 逻辑正确吗?我还确保我已允许使用电子邮件链接登录。

表格

export const SignIn = () => {
  return (
    <Formik
      onSubmit={(values, { setSubmitting }) => {
        sendSignInLinkToEmail(auth, values.email, actionCodeSettings)
          .then(() => {
            window.localStorage.setItem("emailForSignIn", values.email);
            setAlertLabel("A sign-in link has been sent to your email");
          })
          .catch(() =>
            setAlertLabel(
              "Something went wrong while sending the sign-in link. Please try again later"
            )
          );
        setSubmitting(false);
      }}
    >
      {({ values, handleSubmit, handleChange }) => {
        return (
         ...
        );
      }}
    </Formik>
  );
};

配置

const actionCodeSettings = {
  url: "http://localhost:3000",
  handleCodeInApp: true,
};

reactjs firebase firebase-authentication next.js13
1个回答
0
投票

编辑:

请确认以下事项

url:要嵌入的深层链接以及要传递的任何其他状态 沿着。必须将链接的域添加到 Firebase 控制台列表中 授权域名,可以通过登录找到 方法选项卡(身份验证 -> 设置)。

在测试时您可能还想查看 does-the-sendsigninlinktoemail-function-work-with-a-firebase-emulator

© www.soinside.com 2019 - 2024. All rights reserved.