Google云终端中的身份验证标头与查询参数

时间:2018-04-21 07:22:20

标签: node.js firebase-authentication google-cloud-endpoints

我已尝试过所有内容,但我无法使用带有Authentication:Bearer标头的Google云端点访问我的API。根据{{​​3}}:

  

当您使用身份验证令牌发送请求时,出于安全原因,我们建议您将令牌放在Authorization:Bearer标头中。

它还说:

  

如果在发送请求时无法使用标头,则可以将身份验证令牌放在名为access_token的查询参数中。

我可以在我的网址中使用access_token=" +idToken完美地访问API。但是,当我尝试使用Authentication头发送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

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

2 个答案:

答案 0 :(得分:0)

使用“授权:承载”时,您需要使用通过OAuth 2.0身份验证获得的访问令牌。

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

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

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

答案 1 :(得分:0)

您的代码示例显示您设置了Auth entication 标头,而不是Auth orization 标头。您通常不应使用查询参数,因为它可能会记录在云控制台中。