登录
首页 >  Golang >  Go问答

验证 Google Firebase 管理 SDK 的凭据是否有效

来源:stackoverflow

时间:2024-03-07 17:21:24 286浏览 收藏

大家好,今天本人给大家带来文章《验证 Google Firebase 管理 SDK 的凭据是否有效》,文中内容主要涉及到,如果你对Golang方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!

问题内容

使用以下代码初始化应用时,有什么方法可以验证 firebase admin sdk 凭据是否正确?

ctx := context.background()
opt := option.withcredentialsfile("path/to/firebase-admin-sdk-cred.json")
app, err := firebase.newapp(ctx, nil, opt)
if err != nil {
    return nil, err
}

因为当我尝试故意输入错误的凭据时,似乎没有收到任何错误。我检查了 firebase.newapp() 的实现,但似乎只有在没有配置时才会抛出错误。下面是 firebase.newapp()

的代码
func NewApp(ctx context.Context, config *Config, opts ...option.ClientOption) (*App, error) {
o := []option.ClientOption{option.WithScopes(internal.FirebaseScopes...)}
o = append(o, opts...)
if config == nil {
    var err error
    if config, err = getConfigDefaults(); err != nil {
        return nil, err
    }
}

pid := getProjectID(ctx, config, o...)
ao := defaultAuthOverrides
if config.AuthOverride != nil {
    ao = *config.AuthOverride
}

return &App{
    authOverride:     ao,
    dbURL:            config.DatabaseURL,
    projectID:        pid,
    serviceAccountID: config.ServiceAccountID,
    storageBucket:    config.StorageBucket,
    opts:             o,
}, nil 
}

那么有什么方法可以在 firebase admin(app) 实例初始化期间检查凭据是否有效,因为捕获错误似乎不是这里的解决方案?


解决方案


我最终使用 google.golang.org/api/transport 来强制验证并快速失败

// check if credential is correct
_, err = transport.creds(ctx, opt)
if err != nil {
    return nil, err
}

我认为答案就在文档中:

Source

我假设检查凭据的唯一方法是调用 auth 方法,例如:

client, err := app.Auth(context.Background())

到这里,我们也就讲完了《验证 Google Firebase 管理 SDK 的凭据是否有效》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>