Я работаю над настройкой аутентификации для моего сайта. Я хотел бы иметь несколько опций регистрации / подключения учетной записи в будущем, но сейчас я сосредоточен исключительно на проверке подлинности. Я использую 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
, мне приходится дергать аутентификацию, после чего "не удалось получить профиль пользователя" после. Я абсолютно новичок в аутентификации и буду очень признателен за любую помощь. Спасибо!
edit: в качестве дополнительного примечания я планирую использовать uid-safe для секрета cookie.