Passport.session () не обходит логин - PullRequest
0 голосов
/ 17 июня 2020

Я разрабатываю приложение express с паспортом js. Когда пользователь нажимает кнопку входа в систему в первый раз, он должен использовать стратегию Google и ввести меня в «/ успех». Когда я закрываю и открываю свой браузер, не выходя из системы, и снова нажимаю кнопку «Войти», он должен ввести меня в «/ success» без повторного запроса экрана входа в систему, потому что я использовал cook ie для хранения данных. Но он снова просит войти в систему с помощью Google. Ниже приведен код программы. Где я ошибаюсь? Пожалуйста помоги. Примечание: я узнал, что cook ie работает нормально, когда я записал в журнал вывод deserializeUser method


index. js

const express = require("express");
const bodyparser = require("body-parser");
const passport = require("passport");
const authRoutes=require('./routes/auth');
const cookieSession=require('cookie-session');

const app = express();
app.use(bodyparser.urlencoded({ extended: true }));
app.use(bodyparser.json());
app.use(cookieSession({
    maxAge:24*60*60*1000,
    keys:['somerandomkey']
}))
app.set("view engine", "ejs");
app.use(passport.initialize());
app.use(passport.session());

passport.serializeUser((user, done) => {
    done(null, user);
});
passport.deserializeUser((user, done) => { 
    // console.log(user);
    done(null, user) });
app.use('/auth/google',authRoutes);
function isLoggedIn(req, res, next) {
    if (req.isAuthenticated()) {
        next();
    }
    else {
        res.send("first login")
    }
}
app.get('/',(req,res)=>res.render('login'));
app.get('/success',isLoggedIn,(req,res)=>res.send('login success'));
app.listen(8080);

авт. js

const express = require('express');
const passport = require('passport');
const GoogleStrategy = require('passport-google-oauth20');
const router = express.Router();

passport.use(new GoogleStrategy({
    clientID: 'clientID',
    clientSecret: 'clientSecret',
    callbackURL: "http://localhost:8080/auth/google/callback"
},
    function (accessToken, refreshToken, profile, done) {
        done(null,profile);
    }
));
router.get('/', passport.authenticate('google', { scope: ['profile'] }));
router.get('/callback', passport.authenticate('google', { failureRedirect: '/' }),(req,res)=>{
    res.redirect('/success')
});
module.exports = router;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...