Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.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
Node.js 使用passportjs for nodejs应用程序的twitter身份验证在heroku上不起作用,导致内部服务器错误_Node.js_Authentication_Heroku_Twitter_Passport.js - Fatal编程技术网

Node.js 使用passportjs for nodejs应用程序的twitter身份验证在heroku上不起作用,导致内部服务器错误

Node.js 使用passportjs for nodejs应用程序的twitter身份验证在heroku上不起作用,导致内部服务器错误,node.js,authentication,heroku,twitter,passport.js,Node.js,Authentication,Heroku,Twitter,Passport.js,我正在尝试对用户进行身份验证,它在本地主机上运行得非常好,但当我在Heroku上部署它时,它给了我内部服务器错误。 我不知道出了什么问题。 我对nodejs是新手 route.js const router=express.Router(); var sess,profileid,screen_name,adsess; var isdashboard=false; var passport=require('passport'); var twitterStrategy=require('pas

我正在尝试对用户进行身份验证,它在本地主机上运行得非常好,但当我在Heroku上部署它时,它给了我内部服务器错误。 我不知道出了什么问题。 我对nodejs是新手

route.js

const router=express.Router();
var sess,profileid,screen_name,adsess;
var isdashboard=false;
var passport=require('passport');
var twitterStrategy=require('passport-twitter').Strategy;
const config = require('../model/config');

router.use(passport.initialize());
router.use(passport.session());

passport.use(new twitterStrategy({
    consumerKey:config.consumer_key,
    consumerSecret:config.consumer_secret,
    callbackURL:'/twitter/return'
},function(token,tokenSecret,profile,callback){
    console.log(config.consumer_key);
    profileid=profile.id
    screen_name=profile.username;
    return callback(null,profile);
}));

passport.serializeUser(function(user,callback){
 callback(null,user);   
});

passport.deserializeUser(function(obj,callback){
    callback(null,obj);   
});

router.get('/',(req,res)=>{
    res.render("files/index",{ title: 'Home' });
});

router.get('/twitter/login',passport.authenticate('twitter'));

router.get('/twitter/return',passport.authenticate('twitter',{
    failureRedirect:'/'
}), function(req,res) {
    sess=req.session;
    res.redirect('/dash')
});

router.get('/dash',(req,res)=>{
    if( typeof sess =="undefined" || sess==0)
    {
        res.redirect('/');
    }
    else
    {
    res.render("files/dash",{ title: 'Home',logout:'Logout',profileid:profileid,screen_name:screen_name });
    }
});

module.exports = router;
用户单击登录后,它会重定向并给出此错误

[错误输出]

这在heroku日志中出现,我在localhost中没有看到

2020-11-10T07:42:53.174927+00:00 heroku[router]: at=info method=GET path="/twitter/return?oauth_token=lT6iwwAAAAABJfHVAAABdbEbg-Q&oauth_verifier=BjvxJXUwHH8Z5rXbdYTuB51EKy1fgYNf" host=justatester.herokuapp.com request_id=69663a2a-1a91-4d1e-b322-bc789c342b72 fwd="103.137.95.87" dyno=web.1 connect=1ms service=4ms status=500 bytes=588 protocol=http
2020-11-10T07:42:53.173647+00:00 app[web.1]: Error: Failed to find request token in session
2020-11-10T07:42:53.173709+00:00 app[web.1]:     at SessionStore.get (/app/node_modules/passport-oauth1/lib/requesttoken/session.js:13:44)
2020-11-10T07:42:53.173710+00:00 app[web.1]:     at Strategy.OAuthStrategy.authenticate (/app/node_modules/passport-oauth1/lib/strategy.js:214:33)
2020-11-10T07:42:53.173711+00:00 app[web.1]:     at Strategy.authenticate (/app/node_modules/passport-twitter/lib/strategy.js:87:40)
2020-11-10T07:42:53.173711+00:00 app[web.1]:     at attempt (/app/node_modules/passport/lib/middleware/authenticate.js:366:16)
2020-11-10T07:42:53.173711+00:00 app[web.1]:     at authenticate (/app/node_modules/passport/lib/middleware/authenticate.js:367:7)
2020-11-10T07:42:53.173712+00:00 app[web.1]:     at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
2020-11-10T07:42:53.173712+00:00 app[web.1]:     at next (/app/node_modules/express/lib/router/route.js:137:13)
2020-11-10T07:42:53.173713+00:00 app[web.1]:     at Route.dispatch (/app/node_modules/express/lib/router/route.js:112:3)
2020-11-10T07:42:53.173713+00:00 app[web.1]:     at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
2020-11-10T07:42:53.173714+00:00 app[web.1]:     at /app/node_modules/express/lib/router/index.js:281:22