有没有办法使用电子邮件地址和密码来验证用户身份? 在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
}
Firebase Admin SDK(包括 Go 的 SDK)提供对 Firebase 的完全管理访问权限,并且没有当前登录用户的概念。如果您想为已知用户创建令牌,类似于客户端 SDK 的操作,您通常会调用 REST API。
如果你想在 Go 后端执行一些逻辑,要求你知道当前用户,你通常会在客户端获取 ID 令牌,通过某种安全机制将其传递到服务器,在那里验证令牌,然后检查(例如)用户是否有权执行他们尝试执行的操作。