gpt4 book ai didi

javascript - 错误: invalid_request Missing required parameter: scope (Restify & Passportjs w/Google OAuth2)

转载 作者:太空宇宙 更新时间:2023-11-03 22:25:22 24 4
gpt4 key购买 nike

所以,我在使用 Restify 和 Passportjs(Google OAuth2 策略)时遇到了 Node.js 应用程序的问题。当我使用 passport.authenticate() 时,它给出以下错误:

400. That’s an error.
Error: invalid_request
Missing required parameter: scope

几年前我发现了另一个关于同一件事的问题(invalid_request with missing: scope using Google Passportjs on Google Oauth2)。作者说他最终自己修复了这个问题,但没有发布修复结果。

还有其他人遇到过这个问题并能够解决它吗?我想不通。这是我的代码:

authController.js

var passport = require('passport');
var GoogleStrategy = require('passport-google-oauth20').Strategy;

var auth = {
google: {
clientID: '<ID>',
clientSecret: '<SECRET>',
callbackURL: 'https://localhost:8080/auth/google/return',
scope: ['profile', 'email']
}
};

passport.use(new GoogleStrategy({
clientID: auth.google.clientID,
clientSecret: auth.google.clientSecret,
callbackURL: auth.google.callbackURL
}, function(accessToken, refreshToken, profile, cb) {
return cb(null, profile.id);
}));

module.exports.authenticate = passport.authenticate('google', { scope: auth.google.scope });
module.exports.isAuthenticated = passport.authenticate('google', { successRedirect: '/hello/succeed', failureRedirect: '/hello/fail' });

server.js

var restify = require('restify'),
fs = require('fs'),
bodyParser = require('body-parser'),
authController = require('./controllers/authController');

// Placeholder handler.
function respond(req, res, next) {
res.send('hello ' + req.params.name);
return next();
}

// Create server.
var api = restify.createServer({
certificate: fs.readFileSync('server.crt'),
key: fs.readFileSync('server.key'),
name: 'BQ:IQ Question Writer'
});

// Setup authentication
api.get('/auth/google', authController.authenticate);
api.get('/auth/google/return', authController.isAuthenticated);

// Setup routes.
api.get('/hello/:name', respond);
api.head('/hello/:name', respond);

api.listen(8080, function() {
console.log('%s listening at %s', api.name, api.url);
});

最佳答案

初始化服务器后我似乎缺少以下代码:

api.use(restify.plugins.queryParser({ mapParams: false }));

添加该行后,我就不再看到 Google 错误,并且该过程传回到我的代码。

关于javascript - 错误: invalid_request Missing required parameter: scope (Restify & Passportjs w/Google OAuth2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47605974/

24 4 0