我正在为我的网站设置身份验证。我希望将来有一些注册/连接帐户选项,但现在只专注于抽搐身份验证。
我正在使用Next.js
进行服务器端渲染。
我已经从http://www.passportjs.org/packages/passport-twitch/复制了代码,并将我的client_id和密码存储在.env文件中。
server.js->
const port = process.env.PORT || 3000;
const dev = process.env.NODE_ENV;
const nextApp = next({dev});
const express = require("express");
const bodyParser = require("body-parser");
const cookieParser = require("cookie-parser");
const cookieSession = require("cookie-session");
const passport = require("passport");
const twitchStrategy = require("passport-twitch").Strategy;
const app = express();
nextApp.prepare().then(() => {
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cookieParser());
app.use(cookieSession({secret:"somesecrettokenhere"}));
app.use(passport.initialize());
passport.use(new twitchStrategy({
clientID: process.env.TWITCH_CLIENT_ID,
clientSecret: process.env.TWITCH_CLIENT_SECRET,
callbackURL: "http://localhost:3000/auth/twitch/callback",
scope: "user_read"
},
function(accessToken, refreshToken, profile, done) {
console.log("profile: "+profile);
}
));
passport.serializeUser(function(user, done) {
done(null, user);
});
passport.deserializeUser(function(user, done) {
done(null, user);
});
app.get("/", function (req, res) {
return nextApp.render(req, res, '/Index', req.query);
});
app.get("/auth/twitch", passport.authenticate("twitch", {forceVerify: true}));
app.get("/auth/twitch/callback",
passport.authenticate("twitch", { failureRedirect: "/" }),
function(req, res) {
// Successful authentication, redirect home.
res.redirect("/");
});
app.get('*', (req, res) => {
return nextApp.render(req, res, '/Index', req.query);
});
app.listen(port, () => {
//console.log(`listening on port ${port}`);
});
});
当我点击/auth/twitch
路由时,我确实需要抽搐验证,然后在之后输入“无法提取用户个人资料” 。我是身份验证的新手,将不胜感激。谢谢!
编辑:作为一个附带说明,我计划对cookie机密使用uid-safe。
答案 0 :(得分:0)
因此,我终于找到了将控制台日志粘贴到passport-twitch文件中的感觉,以查看来自抽搐的错误,指出v3已死,v5仍然存在。然后看到它在叫海妖。已更新为“护照抽搐螺旋”和“瞧”。