从新的 Firebase 身份验证模拟器中删除所有用户

XBu*_*123 7 firebase firebase-authentication firebase-admin

我正在玩新的 firebase auth 模拟器(在节点管理 SDK 上),并且做了一些测试,如果我在每次测试之间手动删除创建的用户,这些测试可以完美运行,但我似乎无法自动删除它们?

我已经在我的 beforeEach() 中使用了此处定义的端点,但是我从响应调用中得到了“响应代码 401,未经授权”?

端点:删除: http://localhost:9099/emulator/v1/projects/{project-id}/accounts

我只是尝试使用 Postman 发送电话,它的回复如下:

{
    "error": {
        "code": 401,
        "message": "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
        "errors": [
            {
                "message": "Login Required.",
                "domain": "global",
                "reason": "required",
                "location": "Authorization",
                "locationType": "header"
            }
        ],
        "status": "UNAUTHENTICATED"
    }
}
Run Code Online (Sandbox Code Playgroud)

除了向网络应用程序添加一个谷歌按钮之外,错误中的 URL 似乎没有给我太多帮助,这使我指向创建一个 OAuth2 网络帐户。我在现有的 localhost:9099 中输入了 localhost:9099,但不知道应该在哪里使用客户端 ID 和客户端密码?如果它们是我应该使用的。

我知道我需要某种用于删除调用的 Authorization 标头,但我只是不知道应该在该标头中放入什么,或者如何放入。

感谢您对此有任何了解。

编辑:我现在尝试了以下授权标头:

“行政”

""(空字符串)

firebase.options.credential.getAccessToken() 生成的完整令牌

上述令牌的 access_token 字段

上述令牌的 id_token 字段。

令牌本身看起来像这样(编辑了一些字段):

{ 
"access_token":
       "[access token string here]",
    "expires_in": 3599,
    "scope":
       "openid https://www.googleapis.com/auth/firebase https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/cloudplatformprojects.readonly",
    "token_type": "Bearer",
    "id_token":
       "[id token string here]"
}
Run Code Online (Sandbox Code Playgroud)

小智 5

谢谢!但是,我想将它与 curl 格式一起使用以在 npm 脚本上获取它,所以这是我使用的:

curl -H 'Authorization: Bearer owner' -X DELETE http://localhost:9099/emulator/v1/projects/<projectid>/accounts
Run Code Online (Sandbox Code Playgroud)

回应应该是:

{}
Run Code Online (Sandbox Code Playgroud)