当前位置: 首页 > 知识库问答 >
问题:

Firebase身份验证应用ActionCode方法不会将emailVertify转换为true

林意蕴
2023-03-14

我正在开发Firebase身份验证系统,向用户发送电子邮件以验证电子邮件adr。我最终让一切正常。用户注册,电子邮件(带有链接)被发送到注册的edmail adr。我使用自定义电子邮件操作处理程序(https://firebase.google.com/docs/auth/custom-email-handler)来响应点击链接。在我的node.js快速路线上,我得到oobCode(Firebase留档说是“一次性代码,用于识别和验证请求”)并将其作为参数传递给firebase.auth()。当解决时,它返回一个无效的promise。见下面的代码。

   firebase.auth().applyActionCode(oobCode)
        .then( () => {
          return admin.auth().updateUser(currentUser.uid, {
            emailVerified: true,
          })
        })
        .then( () => {
          return res.status(301).redirect(`../unps/${currentUser.uid}`)
        })
        .catch( (error) => {
          return res.status(500).json({ unp_error: `error message: ${error.message} - error code: 
   ${error.code}` })
        });

我对文档的不满意是,如果解决,applyActionCode 方法会将电子邮件验证设置为 true,但即使没有错误也不会发生这种情况。我不得不致电更新用户将电子邮件验证更改为 true。如果将有效的 oobCode 显示为参数,则不应该由方法自动执行此操作吗?我错过了什么?恳求帮助?

共有1个答案

澹台臻
2023-03-14

应用程序代码中关于Firebase身份验证用户的所有信息都来自ID标记。这个ID令牌在一个小时内有效,并在到期前大约5分钟由SDK自动刷新。在令牌刷新之前,它可能不会反映< code>emailVerified的最新值或服务器上有关该用户配置文件的其他信息。

实际上,您需要强制刷新令牌,以在其自动刷新之前获得更新的状态,这是很正常的。当您这样做时,您不必调用admin.auth().updateUser(…)

 类似资料:
  • 我不知道我的代码或Firebase控制台有什么问题,但当我运行应用程序并单击提交按钮尝试创建一个帐户时,它会运行,我不知道为什么。 很抱歉对我的描述含糊不清,但如果有人能告诉我我做错了什么,我将非常感激。 } 错误消息

  • 我目前正在使用FirebaseAuth和web小部件库firebaseui web开发基于VueJS的登录流原型。 成功认证后(无论是< code>password还是< code>google provider ),小部件加载栏会不断重复,firebaseui-web不会触发其< code > signinseccesswithauthresult 回调。但是对< code > identity

  • 于是我在这里看到:https://firebase . Google . com/docs/auth/web/account-linking # link-auth-provider-credentials-to-a-user-account现在可以在Firebase中链接用户账号了。我还看到Firebase提供了匿名认证的功能,它为一个用户创建一个用户会话,不需要任何凭证。 在我们的应用程序中,

  • 我一直很难找到Google Firebase身份验证背后的SLA。根据托管和实时数据库的服务水平协议,Firebase的每月正常运行时间百分比应至少达到99.95%。它是否适用于身份验证服务?

  • 在本章中,我们将匿名认证用户。 步骤1 - 启用匿名身份验证 这和我们以前的章节是一样的。需要打开Firebase信息中心,点击侧边菜单中的Auth和标签栏内的认证方法,需要启用匿名身份验证。 第2步 - 登录功能 可以使用方法进行此认证。 示例 让我们来看看下面的例子,参考示例代码 -

  • 使用,https://github.com/firebase/FirebaseUI-Android/tree/master/codelabs/chat作为登录的参考,我在键入时似乎遇到了问题 我只能键入Auth的提供者,而不能键入,为什么会这样,它提示我键入社会提供者。