使用 Golang 进行基于 Firebase 令牌的身份验证。

我正在使用完全在 Golang 中的 firebase admin SDK 创建一个 RESTful API。
尝试集成基于令牌的身份验证时会出现问题,这需要客户端 SDK 和管理 SDK

例如,

  1. firebase 客户端 SDK 提供了诸如输出 ID 令牌之类的方法signInWithCustomTokensignInWithEmailAndPassword这些方法将使用 Admin SDK 中的方法进行处理。

  2. firebase admin SDK 提供了一些方法,例如VerifyIDToken验证从客户端传递的令牌。

最新的 firebase 文档中,它说,

Firebase Admin SDK 将 Cloud Firestore 的 Google Cloud 客户端库与其他 Firebase 功能的客户端库和 SDK 捆绑在一起。



由于我需要在 Golang 中同时使用 Client 和 Admin SDK,因此我决定使用 Admin SDK。
但是,Golang 中的 Admin SDK 文档没有signInWithCustomToken和 等方法signInWithEmailAndPassword

如果我要使用 Golang 构建一个 RESTful API,我是否必须使用另一种前端编程语言如 JavaScript 来实现基于令牌的身份验证?
在 JavaScript Admin SDK 中,它们确实有可用的方法,例如signInWithCustomTokensignInWithEmailAndPassword.

我想知道在 Admin SDK 中没有使用 Golang 记录必要方法时编写基于令牌的身份验证的解决方法。


开满天机
浏览 216回答 2
2回答

Cats萌萌

您还可以使用auth_test.go中的代码作为示例:func signInWithCustomToken(token string) (string, error) {    req, err := json.Marshal(map[string]interface{}{        "token":             token,        "returnSecureToken": true,    })    if err != nil {        return "", err    }    apiKey, err := internal.APIKey()    if err != nil {        return "", err    }    resp, err := postRequest(fmt.Sprintf(verifyCustomTokenURL, apiKey), req)    if err != nil {        return "", err    }    var respBody struct {        IDToken string `json:"idToken"`    }    if err := json.Unmarshal(resp, &respBody); err != nil {        return "", err    }    return respBody.IDToken, err

慕桂英4014372

Admin SDK 提供了与后端代码一起使用的功能。使用 Firebase 身份验证,用户可以在前端登录并将 ID 令牌传递给后端。如果您建议使用 golang 编写类似前端的应用程序,您将找不到任何 API。在这种情况下,您可以直接调用Firebase Auth REST API。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go