身份验证 header 与 google 云端点中的查询参数

authentication header vs query parameter in google cloud endpoints

我已经尝试了所有方法,但我无法使用 Authentication:Bearer header 使用 google 云端点访问我的 API。根据Cloud Endpoints Docs:

When you send a request using an authentication token, for security reasons, we recommend that you put the token in the Authorization:Bearer header.

它还说:

If you cannot use the header when sending the request, you can put the authentication token in a query parameter called access_token.

我可以在 URL 中使用 access_token=" +idToken 完美访问 API。但是,当我尝试发送带有身份验证 header 的 HTTP 请求时,如下所示:

const url =
        "https://<PROJECTNAME>.appspot.com/getbalance";
    axios
        .get(url,{headers:{'Authentication':'Bearer '+idToken}})
        .then(response => {
            console.log(response.data);
        })
        .catch(error => {
            console.log(error);
        });

我收到这个错误:

JWT validation failed: Missing or invalid credentials

在查询参数中发送令牌是否与在 header 中发送令牌一样安全?

使用 "Authorization: Bearer " 时,您需要使用通过 OAuth 2.0 身份验证获得的访问令牌。

如果您对任何 Google API 再次使用 Oauth Playground,就可以说明这一点。

请记住,如果您想使用 Oauth 游乐场访问您的 Firebase 数据库,您需要在游乐场屏幕右上角的齿轮图标上配置您的 Firebase 项目的客户端 ID 和客户端密码。 还要确保使用这些范围:

完成所有步骤后,您将能够使用授权 header 和获得的访问令牌发出 REST 请求。

您的代码示例显示您设置了 Authentication header,而不是 Authorization header。您通常不应使用查询参数,因为它可能会记录在 Cloud Console 中。