Passport.js and JWT

Agenda
- Знакомство с Passport.js
- Несколько слов о JWT
- Пример авторизации на Passport.js
What is passport
- Authentication middleware для Node.js приложений, построенных с использованием express фреймворка
- Очень гибкая и модульная библиотека
- Можно выбрать одну из 300+ реализованных стратегий
How to start
- Подключить passport module и проинициализировать его
- Сконфигурировать одну из выбранных стратегий аутентификации
- Настроить роуты для аутентификации
- Настроить защиту для остальных роутов (при необходимости)

What was before JWT
- POST запрос на сервер с какими-либо данными о пользователе (например, username и password)
- Response с пользовательскими данными и отдельно сгенерированный сервером токен
- Последующие запросы на сервер с предоставленным токеном
Auth with JWT

Decoding compact JWT token

Pros
- Большая популярность, следовательно, существует множество библиотек для реализации аутентификации на основе JWT токенов
- Позволяет реализовать единую систему аутентификации для различных сервисов
- Содержит в себе полезную для клиента информацию в виде JSON
- Токен достаточно компактен
Cons
- Один токен управляет доступом ко всем сервисам
- Трудности в реализации более безопасной системы аутентификации с использованием refresh токенов
Using refresh tokens

Authentication example
WEBSOCKET
What was before websockets
- Ajax (частый полинг)
- Comet (длинный полинг)
- JSONP

Websocket in use

Libraries

Implementation example
Passport, jwt, ws
By shutya
Passport, jwt, ws
- 328