首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >护照回调500服务器错误

护照回调500服务器错误
EN

Stack Overflow用户
提问于 2017-08-22 12:58:06
回答 1查看 1.8K关注 0票数 2

我一直在努力争取护照的工作。我使用的是护照-github2,但是当我试图解决这个问题的时候,我也试过了--facebook和twitter,现在似乎都没有用了。

我有一个简单的应用程序,它与facebook/twitter登录,现在它们不再工作了,所以这似乎与一个更新版本的Passport有关。

下面是我的github.js文件中的内容,它是用url api/auth/github访问的。

代码语言:javascript
复制
var express = require('express'),
     router = express.Router(),
     config = require('config'),
     githubAuth = config.get('github'),
     githubStrategy = require('passport-github2').Strategy,
     flash = require('connect-flash'),

     GITHUB_CLIENT_ID = githubAuth.githubClientID,
     GITHUB_CLIENT_SECRET = githubAuth.githubClientSecret,

     app = express();

 //passport vars
 var passport = require('passport'),
     session = require('express-session'),
     methodOverride = require('method-override'),
     bodyParser = require("body-parser"),
     cookieParser = require("cookie-parser");



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

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

 passport.use(new githubStrategy({
         clientID: GITHUB_CLIENT_ID,
         clientSecret: GITHUB_CLIENT_SECRET,
         callbackURL: 'http://localhost:3000/api/auth/github/callback'
     },
     function (token, tokenSecret, profile, done) {
         // asynchronous verification, for effect...
         return done(null, profile);
     }
 ));

 app.use(cookieParser());
 app.use(bodyParser());
 app.use(methodOverride());
 app.use(session({
     secret: 'keyboard cat',
     resave: true,
     saveUninitialized: true
 }));
 app.use(passport.initialize());
 app.use(passport.session()); // persistent login sessions
 app.use(flash())

 router.get('/', passport.authenticate('github', {
     scope: ['user']
 }));


 router.get('/callback',
     passport.authenticate('github', {
         failureRedirect: '/',
         successRedirect: '/'
     }),
     function (req, res) {
         res.send('Hello World!!');
     }
 );

 module.exports = router;

当我进入http://localhost:3000/api/auth/github时,github允许我进行身份验证,然后单击绿色按钮,它将带我返回回调url,在这里,一切都在爆炸,我看到了这样的消息:

代码语言:javascript
复制
Error
   at /Users/cynt005/Documents/Code/UXUIteamwebsite/node_modules/passport-github2/lib/strategy.js:96:19
   at passBackControl (/Users/cynt005/Documents/Code/UXUIteamwebsite/node_modules/oauth/lib/oauth2.js:132:9)
   at IncomingMessage.<anonymous> (/Users/cynt005/Documents/Code/UXUIteamwebsite/node_modules/oauth/lib/oauth2.js:157:7)
   at emitNone (events.js:110:20)
   at IncomingMessage.emit (events.js:207:7)
   at endReadableNT (_stream_readable.js:1059:12)
   at _combinedTickCallback (internal/process/next_tick.js:138:11)
   at process._tickCallback (internal/process/next_tick.js:180:9)

控制台:

GET http://localhost:3000/api/auth/github/callback?code=60a130c5c54a6fc30266 500 (Internal Server Error)

我已经搜索了所有的网络,我找不到适合我的解决方案。github中有一个线程,但尚未正式提供解决方案:

https://github.com/jaredhanson/passport-facebook/issues/100

任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-22 21:46:44

解决了。问题是,我必须将所有内容都保存在与app.js相同的文件中。

我仍然想知道是否有一种更好/整洁的方式来分离这个文件而不破坏代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45818341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档