我已尝试过所有内容,但我无法使用带有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
在查询参数中发送令牌是否与在标头中发送令牌一样安全?
答案 0 :(得分:0)
使用“授权:承载”时,您需要使用通过OAuth 2.0身份验证获得的访问令牌。
如果您再次使用Oauth Playground任何Google API,就可以说明这一点。
请注意,如果您想使用Oauth Playground访问Firebase数据库,则需要在操场屏幕右上角的齿轮图标上配置Firebase项目的客户端ID和客户端密钥。 还要确保使用这些范围:
完成所有步骤后,您将能够使用授权标头和获取的访问令牌发出REST请求。
答案 1 :(得分:0)
您的代码示例显示您设置了Auth entication 标头,而不是Auth orization 标头。您通常不应使用查询参数,因为它可能会记录在云控制台中。