firebase - Firebase 身份验证客户端线程安全吗?

标签 firebase go firebase-authentication firebase-admin

我正在使用 https://github.com/firebase/firebase-admin-go在我的 Go 服务器应用程序中。

查看文档后,我每次检查 ID token 时都会创建 auth.Client。例如:

client, err := firebaseApp.Auth(ctx)
if err != nil {
    return "", err
}
token, err := client.VerifyIDToken(ctx, idToken)
if err != nil {
    return "", err
}

我已经在 goroutine 之间共享 firebaseApp(一个 firebase.App)。

我的问题:在 goroutine 之间共享 auth.Client 是否安全,或者我是否需要在每次验证 ID token 时都创建一个?这意味着我将为几乎每个经过身份验证的请求创建一个。这对我来说似乎很昂贵。 我在文档中找不到任何相关信息。

最佳答案

是的,它是 goroutine 安全的。

auth.Client 旨在在 goroutine 之间共享和重用。具体来说,VerifyIDToken() 函数将在调用之间缓存公钥。您应该重用客户端实例以从中受益。 auth.Client 在需要时在内部执行自己的锁定/同步 (e.g.)。

关于firebase - Firebase 身份验证客户端线程安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53129782/

相关文章:

angular - 在 Firebase 中保存产品 - 类别未定义

ssl - 是否可以将 Firebase 数据库与具有自定义域的非 SSL Heroku 托管站点一起使用?

Golang结构体指针调用接口(interface)方法

initialization - Go,初始化自定义类型

api - beego 更新 & 通过 ID 获取 1

android - 我可以自定义 firebase OTP 数字(默认 6 到 4)吗?

android - 如何在android studio中使用firebase auth删除注册用户?

iOS 在 Firebase Crashlytics 仪表板中加载问题时出错

javascript - Firebase equalTo 不工作

android - 无法从 Android/iOS 上的 FirebaseAuthentication 检索电子邮件