从新的 firebase 身份验证模拟器中删除所有用户
Delete all users from the new firebase auth emulator
我正在使用新的 firebase auth 模拟器(在 node admin SDK 上),并且已经做了一些测试 运行 如果我在每次测试之间手动删除创建的用户,那么完美,但我可以好像自动删除了?
我在我的 beforeEach() 中使用了定义 here 的端点,但我从响应调用中收到“响应代码 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"
}
}
错误中的 URL 除了向网络应用程序添加 google 按钮外,似乎没有给我太多帮助,这让我创建了一个 OAuth2 网络帐户。我在现有的 localhost:9099 中输入了 localhost:9099,但不知道应该在哪里使用客户端 ID 和客户端密码?如果它们是我应该使用的。
我知道我需要某种授权 header 才能进行删除调用,但我只是不知道我应该在那个 header 中输入什么,或者如何输入。
感谢您对此的任何见解。
编辑:我现在尝试了以下授权 headers:
“管理员”
""(空字符串)
firebase.options.credential.getAccessToken()
生成的完整令牌
上述token的access_token字段
上述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]"
}
我想通了!当管理员生成令牌时,我使用此令牌的 access_token 字段部分并将 header Authorization: 'Bearer' + access_token
添加到删除请求中。感谢您的帮助。
(这是一个 emulator-only 端点)
编辑:我可以只使用字符串“owner”作为标记...花了我一段时间才弄明白,但现在可以了。
谢谢!但是,我想将它与 curl 格式一起使用,以便在 npm 脚本上获得它,所以这是我使用的:
curl -H 'Authorization: Bearer owner' -X DELETE http://localhost:9099/emulator/v1/projects/<projectid>/accounts
响应应该是:
{}
我正在使用新的 firebase auth 模拟器(在 node admin SDK 上),并且已经做了一些测试 运行 如果我在每次测试之间手动删除创建的用户,那么完美,但我可以好像自动删除了?
我在我的 beforeEach() 中使用了定义 here 的端点,但我从响应调用中收到“响应代码 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"
}
}
错误中的 URL 除了向网络应用程序添加 google 按钮外,似乎没有给我太多帮助,这让我创建了一个 OAuth2 网络帐户。我在现有的 localhost:9099 中输入了 localhost:9099,但不知道应该在哪里使用客户端 ID 和客户端密码?如果它们是我应该使用的。
我知道我需要某种授权 header 才能进行删除调用,但我只是不知道我应该在那个 header 中输入什么,或者如何输入。
感谢您对此的任何见解。
编辑:我现在尝试了以下授权 headers:
“管理员”
""(空字符串)
firebase.options.credential.getAccessToken()
生成的完整令牌上述token的access_token字段
上述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]"
}
我想通了!当管理员生成令牌时,我使用此令牌的 access_token 字段部分并将 header Authorization: 'Bearer' + access_token
添加到删除请求中。感谢您的帮助。
(这是一个 emulator-only 端点)
编辑:我可以只使用字符串“owner”作为标记...花了我一段时间才弄明白,但现在可以了。
谢谢!但是,我想将它与 curl 格式一起使用,以便在 npm 脚本上获得它,所以这是我使用的:
curl -H 'Authorization: Bearer owner' -X DELETE http://localhost:9099/emulator/v1/projects/<projectid>/accounts
响应应该是:
{}