【问题标题】:Swift & Firebase: Detect revoked tokenSwift & Firebase:检测撤销的令牌
【发布时间】:2018-02-28 17:52:33
【问题描述】:

我想知道如何通知客户端 (iOS) 已撤销的令牌,正如 Google 在本指南中所说的那样:

如何(在客户端设备上)检测到令牌已被撤销并采取相应措施(重新验证或退出)?

在客户端响应令牌撤销

如果令牌通过 Admin SDK 被撤销,客户端会收到撤销通知,并且用户需要重新进行身份验证或退出:

谷歌示例:

function onIdTokenRevocation() {
  // For an email/password user. Prompt the user for the password again.
    let password = prompt('Please provide your password for reauthentication');
    let credential = firebase.auth.EmailAuthProvider.credential(
    firebase.auth().currentUser.email, password);
    firebase.auth().currentUser.reauthenticateWithCredential(credential)
    .then(result => {
      // User successfully reauthenticated. New ID tokens should be valid.
    })
    .catch(error => {
      // An error occurred.
    });
}

【问题讨论】:

  • 你有什么问题?
  • 那是不是 Swift。您是否尝试过使用 catch 块?...
  • 我知道这不是 Swift。但是我想知道如何检测到令牌在 iOS 设备上被撤销(使用 swift)

标签: swift firebase firebase-authentication


【解决方案1】:

当令牌失效时,所有 iOS 客户端用户 API 在调用时都会抛出错误 FIRAuthErrorCodeUserTokenExpired。您可以捕获它,然后重新验证用户。

如果您将令牌发送到您的服务器,您可以按如下方式检测它: https://firebase.google.com/docs/auth/admin/manage-sessions#detect_id_token_revocation_in_the_sdk

您还可以设置自己的侦听器,以便在失效发生时立即检测到。显示使用实时数据库的示例: https://firebase.google.com/docs/auth/admin/manage-sessions#detect_id_token_revocation

【讨论】:

    猜你喜欢
    • 2020-09-23
    • 2020-02-02
    • 2019-04-12
    • 1970-01-01
    • 1970-01-01
    • 2014-06-06
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多