Использование паспорта с Next.js / React - PullRequest
0 голосов
/ 05 декабря 2018

Какой традиционный способ сделать OAuth с React?Я показываю немного своей новизны с этим, но я придумал, как создать REST API с экспрессом, который аутентифицируется с помощью паспорта и синхронизирует учетную запись с базой данных.У меня проблема в том, что я хочу, чтобы веб-сайт React пропинговал сервер для OAuth, но затем перенаправил НАЗАД на страницу React С данными об успехе OAuth и сохранил файлы cookie на странице React, а не URL-адрес моего сервера.Любая помощь, обернутая мою голову точно, как все это работает, будет с радостью принята.Я изучал использование Next.js в качестве решения, так как кажется, что он обслуживает React на сервере node.js, что означает, что я мог бы заменить обслуживание маршрута страницы React для шаблона, подобного гидам, которые я видел до сих пор.

1 Ответ

0 голосов
/ 05 декабря 2018

Ваш инстинкт прав, что большинство работы будут на стороне сервера.При работе с OAuth и OpenID терминология может запутаться.На самом деле OpenID - это просто расширение поверх OAuth 2.0, которое немного модифицирует его для обеспечения аутентификации.Иначе;OAuth - это всего лишь механизм делегированной авторизации.

Вы должны ознакомиться с этой видеопрезентацией "OAuth 2.0 и OpenID Connect (на простом английском языке)" * .Это одно из лучших объяснений, которое более подробно описывает то, что я только что сказал.Это заставило меня пойти по правильному пути, чтобы понять больше.

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

Существуют разные потоки для разных вариантов использования.Вы можете выполнить то, что вы хотите, в Javascript SPA на основе браузера, но вам понадобится какое-то защищенное серверное приложение между браузером и поставщиком удостоверений.Будьте очень осторожны при проведении юридической проверки.

Возможно, вы обнаружите, что используемый вами поставщик удостоверений запрашивает дополнительные требования и параметры в дополнение к стандарту.Это может расстраивать, когда мы работаем с фреймворком, который не знает об этих требованиях.

Недавно я собрал игрушечный проект для login.gov, потому что их официальные репозитории были наполовину испечены.и предположил, что ваш клиент работает на стороне сервера.Обратите внимание, что проект - это не само приложение React для браузера, а API, с помощью которого оно может аутентифицироваться.Я написал это в Spring Boot (язык: Kotlin).

Spring - это тот случай, когда он делает МНОГО работы за вас, но когда вам нужно настроить действие, то, как вы это делаете, может быть очень «волшебным» и запутанным.Преимущество Spring, для меня, в том, что его настройки по умолчанию довольно строги, и он заставляет вас понимать и задавать вопросы о том, что вы меняете, прежде чем делать это.

С другой стороны, нам повезло найти примерыAPI Express.js, которые работали из коробки или были проще в настройке.Проблема с этими решениями заключается в том, что вы можете спросить, насколько слабыми являются их значения по умолчанию.Кроме того, в моей работе есть определенные требования, которые делают развертывание Node.js не стартовым.

Для справки: когда речь заходит о React и экосистеме Javascript, я не думаю, что есть такая вещь, как "традиционный"знак равноВ этом мире все движется так быстро, но вы можете сказать, что React все еще свеж.

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