使用 Go 和 Firebase Admin SDK 对用户进行身份验证

问题描述 投票:0回答:1

有没有办法使用电子邮件地址和密码来验证用户身份? 在Firebase Admin SDK包中,Go语言,我发现没有“登录”功能。要创建

CustomToken
,您不需要用户密码。我可以使用
CreateUser
函数创建注册/注册功能。

前端是用 Flutter 编写的,是的,我知道,可以直接在前端实现身份验证,但我想避免它。

func (svc *AuthenticationService) Login(ctx context.Context, req *LoginRequest) (*AuthResponse, error) {
    initFirebase()

    authToken, err := authClient.CustomToken(context.Background(), req.EmailAddress)
    if err != nil {
        return &AuthResponse{
            Result: Result_LOGIN_FAILED,
            Token:  "",
        }, errors.New("login failed: " + err.Error())
    }

    return &AuthResponse{
        Result: Result_LOGIN_SUCCEDED,
        Token:  authToken,
    }, nil
}
flutter go firebase-authentication firebase-admin
1个回答
0
投票

Firebase Admin SDK(包括 Go 的 SDK)提供对 Firebase 的完全管理访问权限,并且没有当前登录用户的概念。如果您想为已知用户创建令牌,类似于客户端 SDK 的操作,您通常会调用 REST API

如果你想在 Go 后端执行一些逻辑,要求你知道当前用户,你通常会在客户端获取 ID 令牌,通过某种安全机制将其传递到服务器,在那里验证令牌,然后检查(例如)用户是否有权执行他们尝试执行的操作。

© www.soinside.com 2019 - 2024. All rights reserved.