gpt4 book ai didi

javascript - Passport 回调500服务器错误

转载 作者:太空宇宙 更新时间:2023-11-03 22:26:18 25 4
gpt4 key购买 nike

我一直在努力让 Passport 有效。我正在使用 Passport-github2,但在尝试解决问题时,我也尝试了 Passport-facebook 和 twitter,但现在似乎都不起作用。

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

这是我的 github.js 文件中的内容,可以通过 url api/auth/github 访问该文件

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/githubgithub 让我进行身份验证,然后我单击绿色按钮,该按钮将带我返回回调 url,然后一切都会爆炸,我会看到以下消息:

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(内部服务器错误)

我用谷歌搜索了整个网络,但没有找到适合我的解决方案。 github上有一个帖子,但官方尚未提供解决方案:

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

任何帮助将不胜感激!!

最佳答案

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

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

关于javascript - Passport 回调500服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45818341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com