REINFORCED_SC Telegram 94
В чём крутость JWT

Представьте что у вас есть кафе, банк, whatever сервисное. Вы живёте в футуристической антиутопии, где все двери у вас открываются только по распознаванию лица. То есть вообще все. То есть даже входная дверь в магазин. И вот в один прекрасный день микросервис для управления дверями приглючивает, он падает и при определённых условиях запирает все двери.

Это же кошмар! Сотрудники оказываются заперты в своих кабинетах. Клиенты не могут войти, а те кто вошёл не могут выйти! И стоят бедненькие за окном, облизываются. Ну вот как у меня с Яндекс.Паспортом было.

Что же предлагает JWT? А JWT в этой ситуации предлагает отличное решение: а давайте мы, мол, вместо центрального микросервиса управления дверями тупо сделаем блин в них замки. А ключи вахтёр выдавать будет. Скажем, на час работы. Заходишь, берёшь связку ключей которая тебя уготована админами — и вперёд. Пользоваться сервисами. Если вахтёр отойдёт попить чайку, скажем, то ничего страшного не произойдёт.

Тут не без минусов, конечно. Например, вахтёр не может добежать до пользователя и отобрать у него ключ в случае если тот начал творить неладное. Но может, например, крикнуть всем дверям заклинание, которое прикажет такой-то ключик не пущать ещё час. Есть, словом, варианты.

Технически это выражается так: при логине, логин-микросервис передаёт клиенту некий JSON, ужатый в base64 для надёжности и подписанный приватным ключом системы. Пользователь его бережёт как зеницу ока и в каждом запросе добавляет, скажем, в заголовок Authentication.

В JSON-е том можно хранить любые данные пользователя. Ну как любые... пароль туда всё же лучше не пихать. А вот информацию, которую вы от пользователя и не скрываете — пожалуйста. Client Id, User Name, Last Login Time, Last Activity Time — вполне. Главное что изменить эту информацию клиентская сторона не может (бо как тогда цифровая подпись не сойдётся).

Ну и собсно в каждом запросе каждый микросервис парсит этот заголовок, расшифровывает JSON, проверяет подпись и если всё ок — процессит запрос. Как видим, никакого централизованного сервиса для этого не надо. А значит что? А это значит что у нас исчезает огромная точка потенциального отказа системы, что повышает её стабильность.

Элегантно. Люблю такие штуки.

Такие дела



tgoop.com/reinforced_sc/94
Create:
Last Update:

В чём крутость JWT

Представьте что у вас есть кафе, банк, whatever сервисное. Вы живёте в футуристической антиутопии, где все двери у вас открываются только по распознаванию лица. То есть вообще все. То есть даже входная дверь в магазин. И вот в один прекрасный день микросервис для управления дверями приглючивает, он падает и при определённых условиях запирает все двери.

Это же кошмар! Сотрудники оказываются заперты в своих кабинетах. Клиенты не могут войти, а те кто вошёл не могут выйти! И стоят бедненькие за окном, облизываются. Ну вот как у меня с Яндекс.Паспортом было.

Что же предлагает JWT? А JWT в этой ситуации предлагает отличное решение: а давайте мы, мол, вместо центрального микросервиса управления дверями тупо сделаем блин в них замки. А ключи вахтёр выдавать будет. Скажем, на час работы. Заходишь, берёшь связку ключей которая тебя уготована админами — и вперёд. Пользоваться сервисами. Если вахтёр отойдёт попить чайку, скажем, то ничего страшного не произойдёт.

Тут не без минусов, конечно. Например, вахтёр не может добежать до пользователя и отобрать у него ключ в случае если тот начал творить неладное. Но может, например, крикнуть всем дверям заклинание, которое прикажет такой-то ключик не пущать ещё час. Есть, словом, варианты.

Технически это выражается так: при логине, логин-микросервис передаёт клиенту некий JSON, ужатый в base64 для надёжности и подписанный приватным ключом системы. Пользователь его бережёт как зеницу ока и в каждом запросе добавляет, скажем, в заголовок Authentication.

В JSON-е том можно хранить любые данные пользователя. Ну как любые... пароль туда всё же лучше не пихать. А вот информацию, которую вы от пользователя и не скрываете — пожалуйста. Client Id, User Name, Last Login Time, Last Activity Time — вполне. Главное что изменить эту информацию клиентская сторона не может (бо как тогда цифровая подпись не сойдётся).

Ну и собсно в каждом запросе каждый микросервис парсит этот заголовок, расшифровывает JSON, проверяет подпись и если всё ок — процессит запрос. Как видим, никакого централизованного сервиса для этого не надо. А значит что? А это значит что у нас исчезает огромная точка потенциального отказа системы, что повышает её стабильность.

Элегантно. Люблю такие штуки.

Такие дела

BY Novikov on Soapbox


Share with your friend now:
tgoop.com/reinforced_sc/94

View MORE
Open in Telegram


Telegram News

Date: |

For crypto enthusiasts, there was the “gm” app, a self-described “meme app” which only allowed users to greet each other with “gm,” or “good morning,” a common acronym thrown around on Crypto Twitter and Discord. But the gm app was shut down back in September after a hacker reportedly gained access to user data. Telegram Channels requirements & features A few years ago, you had to use a special bot to run a poll on Telegram. Now you can easily do that yourself in two clicks. Hit the Menu icon and select “Create Poll.” Write your question and add up to 10 options. Running polls is a powerful strategy for getting feedback from your audience. If you’re considering the possibility of modifying your channel in any way, be sure to ask your subscribers’ opinions first. Polls How to Create a Private or Public Channel on Telegram?
from us


Telegram Novikov on Soapbox
FROM American