0

我正在尝试在 Firebase 中设置无密码身份验证。我已经在我的项目设置中启用了“没有密码的电子邮件”身份验证。使用此文档:https ://firebase.google.com/docs/auth/admin/email-action-links#generate_email_link_for_sign-in我设法实现了一种创建身份验证链接的方法。我的目标是使用用户的电子邮件打开https://dev.test.com/signup/,以便他立即登录。

到目前为止,这是我的代码:

import firebase_admin
from firebase_admin import auth


def main():
    default_app = firebase_admin.initialize_app()

    email = 'name.chris@gmail.com'
    action_code_settings = auth.ActionCodeSettings(
        url=f'https://dev.test.com/signup/?email={email}',
        handle_code_in_app=True,
        ios_bundle_id='com.example.ios',
        android_package_name='com.example.android',
        android_install_app=True,
        android_minimum_version='12',
        dynamic_link_domain='magic42.page.link',
    )

    link = auth.generate_sign_in_with_email_link(email, action_code_settings)
    print(f"LINK = {link}")

当我点击链接时,我没有自动登录。我想我也应该修改我的前端。我正在使用角。我的注册看起来像这样:

  signUp(email: string, password: string): Observable<UserCredential> {
    const credential = firebase.auth.EmailAuthProvider.credential(email, password);
    return from(firebase.auth().currentUser.linkWithCredential(credential));
  }
4

1 回答 1

1

我很困惑为什么你在前端有电子邮件和密码。要使用电子邮件链接完成登录,您应该firebase.auth().signInWithEmailLink()在 /signup 页面上使用方法而不是 linkWithCredential。

您可以在文档中获取使用电子邮件链接完成登录的示例代码(应在您的 /signup 页面上执行): https ://firebase.google.com/docs/auth/web/email-link-auth

于 2021-07-29T19:07:02.057 回答