gleber1
@gleber1

Как правильно работать с cookies?

Если на клиенте нужно каждое действие сопровождать проверкой есть ли сессия, а она хранится в куках, то если скажем перед запросом на эти защищенные страницы можно ли просто записать один раз с сервера в cookies соответствие user-id и проверять уже куку? то есть типа кука.юзер не пуста то отдавай страницу , или нужно каждый раз проверять именно с сервера данное соответствие?
Вот так я сейчас проверяю на сервере
if (req.session.user) {
        res.json({"login": req.session.user});
    }
else{
        next();
    }

Подменить куку злоумышленник не сможет
так как я использую ключ
app.use(session({
    secret: config.get('session:secret'),
    resave: false,
    saveUninitialized: true,
    name: config.get('session:name'),
    path: config.get('session:path'),
    httpOnly: config.get('session:httpOnly'),
    maxAge: config.get('session:maxAge'),
    store: new MongoStore({
        host: 'localhost', // Default, optional
        port: config.get('mongoose:port'), // Default, optional
        db: config.get('mongoose:db') // Required
    }),
    proxy: true
}));
  • Вопрос задан
  • 421 просмотр
Решения вопроса 3
alexofree
@alexofree
Нужно всегда проверять на сервере.
Ответ написан
Lure_of_Chaos
@Lure_of_Chaos
Программист
1. стоит пользоваться существующим механизмом сессий и не заморачиваться
2. userId в куки лучше не писать (во всяком случае, в открытом виде)
3. если нужна функция автовхода, то лучше использовать механизм токенов
4. ну и конечно при изменении привелегий юзера (авторизация,например, получение прав) нужно перегенерить session id
Ответ написан
@desuvin
Посмотрите это видео www.youtube.com/watch?v=BvwHEb5oEJM подробно все рассказывается про кукисы и localstorage
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы