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

  1. POST запрос на сервер с какими-либо данными о пользователе (например, username и password)
  2. Response с пользовательскими данными и отдельно сгенерированный сервером токен
  3. Последующие запросы на сервер с предоставленным токеном

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