Node.js 使用passportjs for nodejs应用程序的twitter身份验证在heroku上不起作用,导致内部服务器错误
我正在尝试对用户进行身份验证,它在本地主机上运行得非常好,但当我在Heroku上部署它时,它给了我内部服务器错误。 我不知道出了什么问题。 我对nodejs是新手 route.jsNode.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
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