Что Laravel проверки подлинности паспорта против против OAuth2, которые против Auth0

Что Laravel проверки подлинности паспорта против против OAuth2, которые против Auth0

11.12.2017 06:03:06 Просмотров 36 Источник

Путаница с типами аутентификации API в Laravel?

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

У вопроса есть решение - Посмотреть?

Ответы - Что Laravel проверки подлинности паспорта против против OAuth2, которые против Auth0 / Laravel Passport vs JWT vs Oauth2 vs Auth0

Является ответом!
Luis L

11.12.2017 06:03:06

Что это за понятия?

  • Passport-это официальный пакет Laravel, реализующий Oauth2 и JWT.
  • Auth0-это служба аутентификации и авторизации. Это своего рода" все в одном " решение для API auth. Он реализует JWT по умолчанию и может реализовать Oauth2, а также многие другие протоколы .
  • OAuth2-это платформа авторизации или протокол, который позволяет приложениям(тем, которые вы собираетесь создавать) дайте ограниченный доступ к учетным записям пользователей, таким как Facebook, GitHub и т. д... Представьте, что ваше приложение стало достаточно большим, чтобы предложить "войти с именем приложения здесь" или предоставить ограниченный доступ к учетной записи пользователя другим сторонним приложениям. С Oauth2 вы можете достичь этого среди многих других вещей .
  • JWT-это формат токенов. Другими словами, это то, как данные будут организованы для создания токена. Другим форматом токена будет SWT.

Иначе говоря:

  • Паспорт реализует -> OAuth2 и вышлю.
  • Auth0 может реализовать -> Oauth2 или многие другие протоколы, такие как LDAP, OPEN ID и т. д...
  • OAuth2, которые можете выполнить -> вышлю или другие форматы маркера, как СВТ...

Что вы должны использовать?

Мало того, что для новичка было бы безумием создать свою собственную реализацию Oauth2, совместимую с Laravel, но также есть вероятность, что если Вы читаете это, потому что вы точно не знаете, как все сложности Oauth2. Oauth2 вышел. Все, что у нас есть, это три варианта пакета. Паспорт, tymondesigns/JWT в-авт и Auth0.

Прежде чем продолжить, позвольте мне отметить, что когда я ссылаюсь на " JWT " или "plain JWT", я действительно имею в виду пакет tymondesigns/jwt-auth. Реальный матч между Auth0, паспорт и обычный вышлю...

Auth0-это Швейцарский армейский нож по сравнению с паспортом и JWT. Этот нож-все в одном решении. Он может делать много вещей сам по себе плюс некоторые дополнительные функции, которые вам никогда не понадобятся, не завися от Laravel или других фреймворков. Чтобы не продлевать это слишком долго, позвольте мне просто сказать, что он может делать все, что вы могли бы себе представить как Новичок API. Кроме того, у вас будет действительно хорошая панель мониторинга прямо из коробки, которая позволит вам управлять всеми аспектами вашего API. От сторонней аутентификации для добавления дополнительных приложений (мобильных, веб -, настольных), которые могут использовать этот API.

Паспорт можно было сравнить с более тонким ножом. Его создатели знали, что он будет вырезать и разработал его специально для этих задач. Другими словами, он был построен специально для Laravel, чтобы работать плавно и безупречно, не имея много колоколов и свистков, беспокоящих вокруг. Хотя, не забывайте, что в долгосрочной перспективе вы можете реализовать свой собственный код поверх него. Как хорошая и настраиваемая панель мониторинга для управления вашими клиентами API.

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

Вывод

Это зависит от вас, если вы хотите сократить все , что может быть брошено на вас, и остаться больше в мире API, чем в Laravel (Auth0), сузить фокус Laravel и Oauth2 для сторонних аутентификаций (Passport) или иметь базовую безопасную передачу данных из коробки через API (JWT). И да... Вы также можете связать свое приложение с вашим мобильным приложением с тремя из них.

Лично я предпочитаю паспорт, потому что:

  • Мне нравится работать с официальными пакетами Laravel.
  • Помимо множества дополнительных маршрутов и таблиц, добавленных в мой проект, его производительность не будет затронута.
  • Если бы я начал с самого простого API auth и хотел масштабировать, это было бы намного проще.
  • Уют работы с пакетом Laravel.

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


Учебники по паспорту и OAuth2

Laravel и OAuth2 Docs объяснение токенов может быть немного сложным. Вот хорошее объяснение различных типов токенов Passport (следовательно, Oauth2) и их вариантов использования . Поскольку я не мог понять часть "маршруты" учебника, я бы не рекомендовал учебную часть.

Это хороший паспорт видео-учебник, который также использует приложение PostMan Chrome для вызовов API. Для тех из вас, кто новичок в этом материале API, такие приложения, как PostMan, сделают вашу работу намного проще, чем с помощью команды "curl" Linux/Mac. Вы можете посмотреть полную серию или только паспортную часть. На данный момент я застрял на видео 4. Вот мой вопрос переполнения стека .

Ресурсы

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

https://stackoverflow.com/questions/47745884/laravel-passport-vs-jwt-vs-oauth2-vs-auth0/47745885#comment88046066_47745885
Отличный пост! Ключевым моментом также является то, что для большинства функций входа в систему вы будете создавать клиент oauth. Если вы хотите быть сервером oauth (например, linkedin, github, google) и выдавать токены, которые можно сделать с помощью passport, но это отличается от создания простого входа в систему, который использует эти службы (т. е. клиент oauth)
https://stackoverflow.com/questions/47745884/laravel-passport-vs-jwt-vs-oauth2-vs-auth0/47745885#comment101611463_47745885
Давайте будем откровенны. Большинство приложений не требуют Laravel Passport. Они прекрасно справятся с Тимоном джутом. Все, что им нужно,-это проверка подлинности электронной почты и пароля без сохранения состояния с помощью токенов обновления. Используя фреймворк Laravel паспорт только это более убить. Laravel Passport имеет смысл, если у вас есть приложение, подобное Facebook, предлагающее клиентам пользователей доступ к своим данным через API с разрешениями. В нем участвуют 3 партии. Пользователь, клиент и серверная часть. И большинство приложений включают в себя 2 части. Пользователь и бэкэнд. Мои два цента.
https://stackoverflow.com/questions/47745884/laravel-passport-vs-jwt-vs-oauth2-vs-auth0/47745885#comment101613156_47745885
Спасибо за ваш комментарий. Я признаю удобство, которое предлагает Tymon JWT, так как это не означает, что все приложения должны будут реализовать аутентификацию партии в будущем. К сожалению, мое личное мнение слишком много просочилось в пост. Я обязательно обновлю сообщение, принимая во внимание ваш комментарий.
Закрыть X