Отделенный интерфейс (SPA) и серверная часть: аутентификация JWT + постоянный вход - PullRequest
0 голосов
/ 12 июля 2019

На локальном хосте: 3000 Я размещаю приложение Node / Express, которое сохраняет пользователей в Mongo.На localhost: 8080 я пытаюсь разместить для него внешний интерфейс AngularJS SPA.Я реализовал аутентификацию JWT для защиты своих конечных точек бэкэнд-API, но я не хочу отправлять токен в заголовке авторизации, поскольку он не предлагает мне постоянный вход в систему.

По Google, я узнал, что лучшим местом для хранения JWT является файл cookie HttpOnly.Это прекрасно работает для Postman, но Chrome не будет устанавливать cookie на localhost: 8080, так как я считаю, что разные порты считаются разными доменами, и поэтому Chrome не будет делать то, что я хочу, потому что это будет недостатком безопасности.

Какой мой лучший курс действий здесь?Я чувствую себя довольно застрявшим.Есть ли способ реализовать безопасную аутентификацию JWT для разрозненного внешнего и внешнего приложений и при этом предлагать постоянный вход?Даже если я укажу JWT, я все равно не смогу устанавливать куки в разных доменах, нет?

Ответы [ 2 ]

0 голосов
/ 18 июля 2019

Мои проблемы были связаны с фундаментальным неправильным пониманием того, как я должен создать такое приложение и какова должна быть моя архитектура.

Решение, которое, я уверен, является здравым смыслом и очевидным для многих :), заключается в простой настройке Node-сервера для внутреннего API, скажем, на localhost:3000, и другого Node-сервера, который обслуживаетстатическая страница, в которую внедряется клиентская среда внешнего интерфейса (в данном случае AngularJS), чтобы сделать его одностраничным приложением.Этот второй сервер получает все прокси-запросы, начинающиеся с /api или что-то похожее на localhost:3000.

0 голосов
/ 12 июля 2019

Убедитесь, что ваш протокол https, файлы cookie со свойствами HttpOnly и Secure не будут включены в простые вызовы http.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...