Взаимодейтсвие Passport.js и Vue.js
У меня есть приложение на Vue (localhost:8080) и приложение на Express (localhost:8081) с авторизацией (passport.js). Я понял, что passport сохраняет куки авторизации на localhost:8081, но я хочу проверять авторизован ли пользователь на клиенте.
- Вопрос 1: Как лучше это реализовать: пересылать cookie с сервера на клиент или есть другие варианты?
- Вопрос 2: Я получаю get с помощью axios с cookie на клиенте. Как из объекта AxiosResponce получить эти куки?
Ответы (1 шт):
Автор решения: HelloThere
→ Ссылка
Я решил проблему следующим образом: добавил в app.js заголовки
const allowCrossDomain = function (req, res, next) {
res.header('Access-Control-Allow-Origin', 'http://localhost:8080');
res.header('Access-Control-Allow-Methods', '*');
res.header('Access-Control-Allow-Headers', 'origin, content-type, accept');
res.header('Access-Control-Allow-Credentials', true);
next();
}
app.use(allowCrossDomain);
и после этого в роутере Vue проверял авторизацию вот так
axios.get('url',{withCredentials:true})
и делал POST с логином следующим образом
axios.post('login',{withCredentials:true})
таким образом, куки можно передавать между хостами