在Firebase auth中,';最近';是指多久以前?

在Firebase auth中,';最近';是指多久以前?,firebase,firebase-authentication,Firebase,Firebase Authentication,我想执行敏感操作线路更新电子邮件、密码等。我知道用户必须“最近”通过身份验证才能执行此类操作。在允许执行此类操作之前,我想确定用户最近是否经过身份验证,而不是从生成的错误消息中检测用户身份验证状态。(这是为了提供更好的用户体验) 我一直在搜索一种方法,例如isRecentlyAuthenticated(),但我找不到。但是我在user元数据中找到了lastsignentime。只有当我知道Firebase中“最近”认证的确切含义时,我才能将lastmignentitime与当前时间进行比较 请澄

我想执行敏感操作线路更新电子邮件、密码等。我知道用户必须“最近”通过身份验证才能执行此类操作。在允许执行此类操作之前,我想确定用户最近是否经过身份验证,而不是从生成的错误消息中检测用户身份验证状态。(这是为了提供更好的用户体验)

我一直在搜索一种方法,例如
isRecentlyAuthenticated()
,但我找不到。但是我在
user
元数据中找到了
lastsignentime
。只有当我知道Firebase中“最近”认证的确切含义时,我才能将
lastmignentitime
与当前时间进行比较

请澄清:

(1) 是否有方法
isRecentlyAuthenticated()
可供我们开箱即用

(2) 如果不是,“最近”是指多久前(1分钟、5分钟、1小时或其他时间)

包括对“最近登录”的引用,例如:

某些安全敏感操作(如删除帐户、设置主电子邮件地址和更改密码)要求用户最近登录

Firebase在执行安全敏感操作时使用

Firebase ID代币寿命短,持续一小时;刷新令牌可用于检索新的ID令牌

如前所述,在尝试这些操作时,您应该处理错误,而不是检查
ID令牌是否过期

var user = firebase.auth().currentUser;

user.delete().then(function() {
  // User deleted.
}).catch(function(error) {
  if (error.code === 'auth/requires-recent-login') {
    // Require user to sign in again.
  }
});

Firebase身份验证要求用户最近在您尝试执行某些敏感操作时提供其凭据。未指定此近期要求的时间段,它由Firebase认证服务强制执行,可以更改而不另行通知

在代码中处理此问题的方法是在尝试操作时捕获错误,然后请求用户再次登录