Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';无法从passport linkedin策略中获得正确的错误_Javascript_Node.js_Express_Passport.js - Fatal编程技术网

Javascript Can';无法从passport linkedin策略中获得正确的错误

Javascript Can';无法从passport linkedin策略中获得正确的错误,javascript,node.js,express,passport.js,Javascript,Node.js,Express,Passport.js,我似乎无法得到一些好的反馈来正确诊断问题 现在我在app.js文件中设置了一个通用错误 以下是错误: Not Found 404 Error: Not Found at /Users/avonproductsinc/Dropbox/developer_folder/oauth-passport-securing-application/securing-app-OAuth-passport/app.js:48:13 at Layer.handle [as handle_req

我似乎无法得到一些好的反馈来正确诊断问题

现在我在app.js文件中设置了一个通用错误

以下是错误:

Not Found

404

Error: Not Found
    at /Users/avonproductsinc/Dropbox/developer_folder/oauth-passport-securing-application/securing-app-OAuth-passport/app.js:48:13
    at Layer.handle [as handle_request] (/Users/avonproductsinc/Dropbox/developer_folder/oauth-passport-securing-application/securing-app-OAuth-passport/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/Users/avonproductsinc/Dropbox/developer_folder/oauth-passport-securing-application/securing-app-OAuth-passport/node_modules/express/lib/router/index.js:312:13)
    at /Users/avonproductsinc/Dropbox/developer_folder/oauth-passport-securing-application/securing-app-OAuth-passport/node_modules/express/lib/router/index.js:280:7
    at Function.process_params (/Users/avonproductsinc/Dropbox/developer_folder/oauth-passport-securing-application/securing-app-OAuth-passport/node_modules/express/lib/router/index.js:330:12)
    at next (/Users/avonproductsinc/Dropbox/developer_folder/oauth-passport-securing-application/securing-app-OAuth-passport/node_modules/express/lib/router/index.js:271:10)
    at /Users/avonproductsinc/Dropbox/developer_folder/oauth-passport-securing-application/securing-app-OAuth-passport/node_modules/express/lib/router/index.js:618:15

at next (/Users/avonproductsinc/Dropbox/developer_folder/oauth-passport-securing-application/securing-app-OAuth-passport/node_modules/express/lib/router/index.js:256:14)
at Function.handle (/Users/avonproductsinc/Dropbox/developer_folder/oauth-passport-securing-application/securing-app-OAuth-passport/node_modules/express/lib/router/index.js:176:3)
at router (/Users/avonproductsinc/Dropbox/developer_folder/oauth-passport-securing-application/securing-app-OAuth-passport/node_modules/express/lib/router/index.js:46:12)
这是我在linkedin策略中的代码:

var passport = require('passport');
var LinkedInStrategy = require('passport-linkedin').Strategy;

module.exports = function() {

    passport.use(new LinkedInStrategy({
            consumerKey: '77z7e2bq34ad0w',
            consumerSecret: 'ajTJfuNTxLnDGlCK',
            callbackURL: "http://127.0.0.1:3000/auth/linkedin/callback"
        },
        function(token, tokenSecret, profile, done) {
            var user = {};
            // user.email = profile.emails[0].value;
            // user.image = profile._json.image.url;
            user.displayName = profile.displayName;

            user.linkedin = {};
            user.linkedin.id = profile.id;
            user.linkedin.token = tokenSecret;
            done(null, user);
        }));

};
这在我的auth.js文件中

var express = require('express');
var passport = require('passport');
var router = express.Router();

    router.route('/linkedin')
    .get(passport.authenticate('linkedin'));

    router.route('/linkedin/callback')
    .get(passport.authenticate('linkedin', {
        successRedirect: '/users',
        failureRedirect: '/error'
    }));
当然,任何帮助都将受到感谢

2017年1月15日更新

app.js代码:

var express = require('express'),
    path = require('path'),
    favicon = require('serve-favicon'),
    logger = require('morgan'),
    cookieParser = require('cookie-parser'),
    bodyParser = require('body-parser'),
    passport = require('passport'),
    session = require('express-session'),
    mongoose = require('mongoose'),

    routes = require('./routes/index'),
    users = require('./routes/users'),
    auth = require('./routes/auth'),

    app = express(),
    db = mongoose.connect('mongodb://localhost/socialAgg');


app.use(require('node-sass-middleware')({
  src: path.join(__dirname, 'public'),
  dest: path.join(__dirname, 'public'),
  indentedSyntax: true,
  sourceMap: true
}));


// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

// setting up passport middlware
app.use(session({secret: 'anything'}));

require('./config/passport')(app);

app.use('/', routes);
app.use('/users', users);
app.use('/auth', auth);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  var err = new Error('Not Found');
  err.status = 404;
  next(err);
});

// error handlers

// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
    app.use(function(err, req, res, next) {
        res.status(err.status || 500);
        res.render('error', {
            message: err.message,
            error: err
        });
    });
}

// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
    res.status(err.status || 500);
    res.render('error', {
        message: err.message,
        error: {}
    });
});


module.exports = app;

你能展示你的
app.js
吗?还有,你的
app.js
中第48行是什么?@RaviShankar当然!真不敢相信我忘了把它包括在内。第48行是app.use(函数(req,res,next){var err=newerror('notfound');err.status=404;next(err);})谢谢!