Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 无效的oauth2令牌请求大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发一个需要通过google进行身份验证的节点应用程序.当我请求令牌时,https://accounts.google.com/o/oauth2/token响应:

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

我尝试在curl中发出相同的请求,并且收到了同样的@L_197_2@,所以我怀疑我的请求有问题,但我无法弄清楚是什么.我在下面粘贴了我的代码

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);
        }
    });

我已经三次检查以确保我提交的所有数据都是正确的,我仍然得到相同的@L_197_2@.我该怎么做才能进一步调试?

解决方法

事实证明,request.js(https://github.com/mikeal/request)不会自动内容长度包含在标题中.我手动添加它,它在第一次尝试时工作.我已粘贴以下代码

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'},body: token_request
        },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令牌请求全部内容,希望文章能够帮你解决node.js – 无效的oauth2令牌请求所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。