А наша Юля Олецкая говорит: можно! Юля рассказала, как создала свое уникальное решение для аутентификации и авторизации — 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, которая могла бы предоставить схожий функционал и простую и понятную интеграцию.
А ты лёгких путей не ищешь
На самом деле, у нас на проекте были созданы кое-какие наработки, на основе которых можно было сделать полноценное решение, решила попробовать. Код был очень сильно привязан к логике конкретного проекта, к рельсам, поэтому работы предстояло много. В итоге я написала standalone library, которая может использоваться независимо от фреймворка – с Sinatra, Hanami, Trailblazer, просто с Ruby.
И про статью расскажи.
Ну потом ещё написала статью о библиотеке, которая попала на несколько зарубежных ресурсов.
Очень круто! Юль, это ведь широко применимая штука? Может быть полезна всем, кто разрабатывает новый API, так?
Да, любой проект, который строит свой API с использованием JWT, может воспользоваться данной наработкой, она актуальна и для микросервисных архитектур.
Больше подробностей в статье Юли на GitHub - https://github.com/tuwukee/jwt_sessions
.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.