次のコードがあり、入力するたびに0.0.0.0:3000/user?apikey=xxx
、ローカル戦略内のコードが実行されず、「許可されていない」ページに直接移動します。からpassport.authenticateを削除しようとしましたserver.get('/user')
。デバッグ モードでは、「apikey」が解析されてパラメーター マップが要求されていることがわかりました。したがって、ここでの問題は、パスポートが get 要求を認証できないことです。どんな助けでも大歓迎です。ありがとう!
var restify = require('restify');
// Create server
var server = restify.createServer({
name: 'server'
});
server.use(restify.queryParser());
server.use(restify.bodyParser());
var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;
passport.use(new LocalStrategy(
function (apikey, done) {
console.log('Entered authentication.');
done(null, null);
}
));
//specify route
server.get('/user', passport.authenticate('local'), function (req, res) {
console.log(req.params);
res.end('haha');
});
server.listen(3000, function () {
console.log('%s listening at %s', server.name, server.url)
});