重新生成授权令牌
Regenerate auth token
我有一个带有 node.js 后端 api 的 flutter 应用程序。我正在使用 firebase Auth 进行身份验证。它现在的工作方式(我不知道这是标准的)是用户向 login/signup 发送对 firebase auth 的请求。 jwt 存储在 flutter 应用程序中,然后它将那个 firebase jwt 发送到我的 API,验证它是一个有效的令牌 firebase.auth().verifyIdToken()
,然后我的 API 发送一个用 firebase 创建的新 jwt firebase.auth().createCustomToken(...)
有自定义信息。
在我的 API 发送每个响应之前,它会检查自定义 jwt 是否在 15 分钟后创建。如果是,它会重新创建一个新的自定义 jwt。如果自最初创建以来已过去 7 天,它会注销用户。
问题是,我没有找到在服务器上重新生成 firebase 身份验证令牌的方法。这意味着用户每小时都必须重新登录。
我觉得我把事情复杂化了,但我不确定这样做的更好设计。有标准吗?我怎样才能做得更好,我怎样才能让用户在 60 分钟后不必重新登录?
当您拥有第三方身份验证系统但您想使用 Firebase 身份验证登录您的用户时,将使用 createCustomToken()
创建的自定义令牌。
The problem is, I don't see a way to regenerate a firebase auth token on the server. Which means every hour the user will have to re-login.
您无需在服务器上执行任何操作。每次你需要调用你的 API 时,你可以使用 getIdToken()
来获取用户的 ID 令牌。
var token = await FirebaseAuth.instance.currentUser().getIdToken();
这将是 return 用户的当前令牌,如果它已经过期,那么它将是一个刷新的令牌。然后您可以将结果传递给您的 API。无需自己将令牌显式存储在任何地方。
无论何时发出 API 请求,流程都可以简单如下:
- 使用
getIdToken()
获取用户的 ID Token
- 在您的 API 请求中传递此令牌
- 使用
verifyIdToken()
和 return 响应进行验证。
我有一个带有 node.js 后端 api 的 flutter 应用程序。我正在使用 firebase Auth 进行身份验证。它现在的工作方式(我不知道这是标准的)是用户向 login/signup 发送对 firebase auth 的请求。 jwt 存储在 flutter 应用程序中,然后它将那个 firebase jwt 发送到我的 API,验证它是一个有效的令牌 firebase.auth().verifyIdToken()
,然后我的 API 发送一个用 firebase 创建的新 jwt firebase.auth().createCustomToken(...)
有自定义信息。
在我的 API 发送每个响应之前,它会检查自定义 jwt 是否在 15 分钟后创建。如果是,它会重新创建一个新的自定义 jwt。如果自最初创建以来已过去 7 天,它会注销用户。
问题是,我没有找到在服务器上重新生成 firebase 身份验证令牌的方法。这意味着用户每小时都必须重新登录。
我觉得我把事情复杂化了,但我不确定这样做的更好设计。有标准吗?我怎样才能做得更好,我怎样才能让用户在 60 分钟后不必重新登录?
当您拥有第三方身份验证系统但您想使用 Firebase 身份验证登录您的用户时,将使用 createCustomToken()
创建的自定义令牌。
The problem is, I don't see a way to regenerate a firebase auth token on the server. Which means every hour the user will have to re-login.
您无需在服务器上执行任何操作。每次你需要调用你的 API 时,你可以使用 getIdToken()
来获取用户的 ID 令牌。
var token = await FirebaseAuth.instance.currentUser().getIdToken();
这将是 return 用户的当前令牌,如果它已经过期,那么它将是一个刷新的令牌。然后您可以将结果传递给您的 API。无需自己将令牌显式存储在任何地方。
无论何时发出 API 请求,流程都可以简单如下:
- 使用
getIdToken()
获取用户的 ID Token
- 在您的 API 请求中传递此令牌
- 使用
verifyIdToken()
和 return 响应进行验证。