Отправить токен в файлы cookie через setHeader ⇐ Javascript
-
Гость
Отправить токен в файлы cookie через setHeader
Я работаю над приложением с входом и регистрацией. До сих пор я использовал localstorage для сохранения токена. Я видел вчера, в целях безопасности лучше отправить токен в файлы cookie.
Хотелось бы узнать мнение опытных людей. Подскажите пожалуйста, правильный ли и безопасный такой подход? Спасибо
Вход через интерфейс
const handleLogin = async (e) => { е.preventDefault() константная конфигурация = { заголовки: { «Тип контента»: «приложение/json», }, } пытаться { const res = await axios.post('/api/user/login', data, config) тост.успех(res.data.message) } поймать (ошибка) { console.log(ошибка) тост.ошибка(ошибка.ответ.данные.сообщение) } } // бэкэнд, /api/user/login
пытаться { константная электронная почта = req.body.email константный пароль = req.body.password const user = await User.findOne({электронная почта}) если(!пользователь) { выдать новую ошибку(`Пользователь не существует!`) } // сравниваем пароль const validPassword = ожидайте bcrypt.compare(пароль, user.password) если (! действительный пароль) { выдать новую ошибку («Неверный пароль!») } константные данные знака = { идентификатор пользователя: user._id, имя: имя пользователя.имя, электронная почта: user.email, администратор: user.isAdmin } const токен = jwt.sign(signData,process.env.JWT_SECRET, { истекаетВ: '4ч', }); // несколько статей о том, как отправлять файлы cookie, используется res.cookies.set(...) // но у меня этот способ не работает // Потом я нашел setHeader, и он работает нормально // до сих пор не понимаю, что за последняя часть: Path=/ res.setHeader('Set-Cookie', `token=${token}; HttpOnly; Max-Age=${60 * 60 * 24 * 1}; Path=/`); вернуть res.status(201).json({ успех: правда, сообщение: «С возвращением», }); } поймать (ошибка) { console.log(ошибка) res.status(500).send({ успех: ложь, сообщение: error.message }) }
Я работаю над приложением с входом и регистрацией. До сих пор я использовал localstorage для сохранения токена. Я видел вчера, в целях безопасности лучше отправить токен в файлы cookie.
Хотелось бы узнать мнение опытных людей. Подскажите пожалуйста, правильный ли и безопасный такой подход? Спасибо
Вход через интерфейс
const handleLogin = async (e) => { е.preventDefault() константная конфигурация = { заголовки: { «Тип контента»: «приложение/json», }, } пытаться { const res = await axios.post('/api/user/login', data, config) тост.успех(res.data.message) } поймать (ошибка) { console.log(ошибка) тост.ошибка(ошибка.ответ.данные.сообщение) } } // бэкэнд, /api/user/login
пытаться { константная электронная почта = req.body.email константный пароль = req.body.password const user = await User.findOne({электронная почта}) если(!пользователь) { выдать новую ошибку(`Пользователь не существует!`) } // сравниваем пароль const validPassword = ожидайте bcrypt.compare(пароль, user.password) если (! действительный пароль) { выдать новую ошибку («Неверный пароль!») } константные данные знака = { идентификатор пользователя: user._id, имя: имя пользователя.имя, электронная почта: user.email, администратор: user.isAdmin } const токен = jwt.sign(signData,process.env.JWT_SECRET, { истекаетВ: '4ч', }); // несколько статей о том, как отправлять файлы cookie, используется res.cookies.set(...) // но у меня этот способ не работает // Потом я нашел setHeader, и он работает нормально // до сих пор не понимаю, что за последняя часть: Path=/ res.setHeader('Set-Cookie', `token=${token}; HttpOnly; Max-Age=${60 * 60 * 24 * 1}; Path=/`); вернуть res.status(201).json({ успех: правда, сообщение: «С возвращением», }); } поймать (ошибка) { console.log(ошибка) res.status(500).send({ успех: ложь, сообщение: error.message }) }
Мобильная версия