Что Laravel проверки подлинности паспорта против против OAuth2, которые против Auth0
Путаница с типами аутентификации API в Laravel?
В настоящее время я изучаю, как создать API в Laravel, и я оказался в этой запутанной концепции. После нескольких дней исследований и практики я смог, наконец, понять достаточно этих концепций, чтобы сделать мини-гид. Мне пришлось изучить много отдельных веб-страниц, поэтому я сделаю все возможное, чтобы объяснить отношения между ними.
Ответы - Что Laravel проверки подлинности паспорта против против OAuth2, которые против Auth0 / Laravel Passport vs JWT vs Oauth2 vs Auth0

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. Вот мой вопрос переполнения стека .
Ресурсы
Многие из ресурсов все распространены выше в статье, но у меня также есть некоторые здесь.


