Взять и написать независимую JWT библиотеку или мы легких путей не ищем

12 июня 2018, 18:04


 

А наша Юля Олецкая говорит: можно! Юля рассказала, как создала свое уникальное решение для аутентификации и авторизации — JWT библиотеку для Ruby — и кому оно может быть полезно.

Юля, привет. Расскажи, как вообще возникла идея библиотеки?

Я работала на проекте, где нужно было создать новую версию API. В новой версии планировать построить API-first приложение, где был бы единообразный процесс аутентификации для JS клиентов и сторонних API-сервисов. Среди рассматриваемых вариантов оказался и JWT. Мы с командой изучили информацию на тему и решили остановиться на этой технологии.

JSON Web Token (JWT) — это открытый стандарт (RFC 7519) для создания токенов доступа, основанный на JSON формате. Как правило, используется для передачи данных авторизации в клиент-серверных приложениях. Токены создаются сервером, подписываются секретным ключом и передаются клиенту, который в дальнейшем использует данный токен для подтверждения своей личности.

Я поняла: есть много статей о JWT, а вот вариантов, которые сразу из коробки дают удобное решение для Ruby, нет. Есть библиотека ruby_jwt, которая шифрует токены согласно спецификации, расшифровывает их, но при этом в самой популярной библиотеке для аутентификации в Ruby on Rails - device, например, нет нативной поддержки JWT. Все, кто использует JWT, стали переходить на новый Auth0 – это такой third-party service, который работает как black box решение. Подписка на него, естественно, платная. И я подумала, что можно было бы создать опен-сорсную библиотеку для Ruby, не привязанную к Rails, которая могла бы предоставить схожий функционал и простую и понятную интеграцию.  

А ты лёгких путей не ищешь (smile)

На самом деле, у нас на проекте были созданы кое-какие наработки, на основе которых можно было сделать полноценное решение, решила попробовать. Код был очень сильно привязан к логике конкретного проекта, к рельсам, поэтому работы предстояло много. В итоге я написала standalone library, которая может использоваться независимо от фреймворка – с Sinatra, Hanami, Trailblazer, просто с Ruby.

И про статью расскажи.

Ну потом ещё написала статью о библиотеке, которая попала на несколько зарубежных ресурсов.

Очень круто! Юль, это ведь широко применимая штука? Может быть полезна всем, кто разрабатывает новый API, так?

Да, любой проект, который строит свой API с использованием JWT, может воспользоваться данной наработкой, она актуальна и для микросервисных архитектур.

Больше подробностей в статье Юли на GitHub - https://github.com/tuwukee/jwt_sessions .

   

  

подписка на главные новости 
недели != спам
# ит-новости
# анонсы событий
# вакансии
Обсуждение