— Продолжайте учиться, продолжать строить и продолжать расти

Аутентификация пользователя 6 лучших библиотек javascript.

1. АО Паспорт

Passport — это не только библиотека аутентификации пользователей с 15 тысячами звезд, это, вероятно, самый распространенный способ для разработчиков JS использовать внешнюю библиотеку для аутентификации пользователей. Эта библиотека в основном предоставляет относительно гибкое и модульное промежуточное ПО для Node.js, которое можно интегрировать в любое веб-приложение на основе Express. Это также платформа сообщества, которая поддерживает различные виды общих аутентификаций, таких как имя пользователя и пароль, Facebook, Twitter и другие.

2. Авторизация0

Хотя это не библиотека, а скорее сервис, это надежный, но быстрый способ выполнить работу. Auth0 — это (довольно большая) начинающая компания, которая предоставляет широкую универсальную платформу аутентификации и авторизации для веб-приложений, мобильных и устаревших приложений. Некоторые говорят, что это самое близкое решение к Devise от Plataformatec для Ruby on Rails, за исключением того, что вы можете подключить любое приложение или API на любом языке. Существует более 100 готовых интеграций, и вот быстрый старт с Node.js.

3. Разрешение

До Permit единственным реальным выбором библиотек аутентификации в Node.js был Passport.js. Но у него есть куча проблем, которые усложняют вашу кодовую базу. Разрешение упрощает добавление уровня аутентификации в любой API Node.js. Его можно использовать с любым из популярных серверных фреймворков (например, Express, Koa, Hapi, Fastify) и с любым типом API (например, REST, GraphQL и т. д.) благодаря его простому и бескомпромиссному дизайну.

Разрешение позволяет вам проходить аутентификацию с помощью двух схем, которые нужны большинству API: один токен носителя секрета или набор учетных данных имени пользователя и пароля. Например, вот как аутентифицировать токен носителя:

Различия между разрешением и паспортом:

  • Passport не ориентирован на аутентификацию API. Passport ориентирован на аутентификацию веб-приложений с помощью таких сервисов, как Facebook, Twitter и GitHub. API-интерфейсам это не нужно, поэтому все лишнее раздувание означает много сложности без какой-либо выгоды.
  • Passport тесно связан с Express. Если вы используете Koa, Hapi, Fastify или какой-либо другой фреймворк, вам придется приложить немало усилий, чтобы заставить его работать хорошо.
  • Другое промежуточное ПО тесно связано с ним. Passport хранит состояние в объекте req, поэтому все остальные промежуточное ПО тесно связаны с его реализацией, что делает кодовую базу хрупкой.
  • Это приводит к большому количеству сложностей для отладки косвенности. Из-за архитектуры черного ящика Passport всякий раз, когда вам нужно отладить проблему, вам приходится отслеживать ее логику на многих уровнях косвенности и во многих репозиториях.
  • Он не очень активно поддерживается. Акцент Passport на провайдеров OAuth означает, что он занимает огромную область действия во множестве репозиториев, многие из которых больше не поддерживаются активно. .
  • Различия между разрешением и паспортом:
  • Passport не ориентирован на аутентификацию API. Passport ориентирован на аутентификацию веб-приложений с помощью таких сервисов, как Facebook, Twitter и GitHub. API-интерфейсам это не нужно, поэтому все лишнее раздувание означает много сложности без какой-либо выгоды.
  • Passport тесно связан с Express. Если вы используете Koa, Hapi, Fastify или какой-либо другой фреймворк, вам придется приложить немало усилий, чтобы заставить его работать хорошо.
  • Другое промежуточное ПО тесно связано с ним. Passport хранит состояние в объекте req, поэтому все остальные промежуточное ПО тесно связаны с его реализацией, что делает кодовую базу хрупкой.
  • Это приводит к большому количеству сложностей для отладки косвенности. Из-за архитектуры черного ящика Passport всякий раз, когда вам нужно отладить проблему, вам приходится отслеживать ее логику на многих уровнях косвенности и во многих репозиториях.
  • Он не очень активно поддерживается. Акцент Passport на провайдеров OAuth означает, что он занимает огромную область действия во множестве репозиториев, многие из которых больше не поддерживаются активно. .

4. Грант

«Я ни за что не реализую это сам», — Улисс С. Грант.

Довольно новая и многообещающая библиотека, обеспечивающая промежуточное ПО OAuth для Express, Koa и Hapi, с более чем 180 поддерживаемыми провайдерами и живой игровой площадкой. Если вы хотите использовать его с вашим собственным частным провайдером OAuth, вы можете указать необходимый ключ самостоятельно. Хотя эта библиотека уже набирает обороты (+ 1000 звезд), ресурсы относительно скудны, поэтому пробуйте ее с осторожностью.

5. Управление аутентификацией перьев

Feathers — это микросервисная веб-инфраструктура реального времени с открытым исходным кодом для NodeJS, которая дает вам контроль над вашими данными с помощью ресурсов RESTful, сокетов и гибких плагинов.

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

6. Просто используйте аутентификацию Firebase (для небольших приложений)

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

Firebase Authentication предоставляет серверные службы, простые в использовании SDK и готовые библиотеки пользовательского интерфейса для аутентификации пользователей в вашем приложении. Он поддерживает аутентификацию с использованием паролей, телефонных номеров, популярных поставщиков федеративных удостоверений, таких как Google, Facebook и Twitter. Подробнее здесь.