gpt4 book ai didi

node.js - 无效的 oauth2 token 请求

转载 作者:搜寻专家 更新时间:2023-10-31 22:46:23 25 4
gpt4 key购买 nike

我正在开发一个需要通过 google 进行身份验证的 Node 应用程序。当我请求 token 时,https://accounts.google.com/o/oauth2/token回应:

error: 400
{
"error" : "invalid_request"
}

我已经尝试在 curl 中发出相同的请求,但收到了相同的错误,所以我怀疑我的请求有问题,但我无法弄清楚是什么。我在下面粘贴了我的代码:

var request = require('request');
var token_request='code='+req['query']['code']+
'&client_id={client id}'+
'&client_secret={client secret}'+
'&redirect_uri=http%3A%2F%2Fmassiveboom.com:3000'+
'&grant_type=authorization_code';
request(
{ method: 'POST',
uri:'https://accounts.google.com/o/oauth2/token',
body: token_request
},
function (error, response, body) {
if(response.statusCode == 201){
console.log('document fetched');
console.log(body);
} else {
console.log('error: '+ response.statusCode);
console.log(body);
}
});

我已经三重检查以确保我提交的所有数据都是正确的,但我仍然遇到同样的错误。我可以做些什么来进一步调试它?

最佳答案

事实证明,request.js (https://github.com/mikeal/request) 不会自动将内容长度包含到 header 中。我手动添加了它,第一次尝试就成功了。我粘贴了下面的代码:

exports.get_token = function(req,success,fail){
var token;
var request = require('request');
var credentials = require('../config/credentials');
var google_credentials=credentials.fetch('google');
var token_request='code='+req['query']['code']+
'&client_id='+google_credentials['client_id']+
'&client_secret='+google_credentials['client_secret']+
'&redirect_uri=http%3A%2F%2Fmyurl.com:3000%2Fauth'+
'&grant_type=authorization_code';
var request_length = token_request.length;
console.log("requesting: "+token_request);
request(
{ method: 'POST',
headers: {'Content-length': request_length, 'Content-type':'application/x-www-form-urlencoded'},
uri:'https://accounts.google.com/o/oauth2/token',
body: token_request
},
function (error, response, body) {
if(response.statusCode == 200){
console.log('document fetched');
token=body['access_token'];
store_token(body);
if(success){
success(token);
}
}
else {
console.log('error: '+ response.statusCode);
console.log(body)
if(fail){
fail();
}
}
}
);
}

关于node.js - 无效的 oauth2 token 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10877451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com