Size: a a a

Golang Developers — русскоговорящее сообщество

2020 July 15

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
(у меня и так куски конфига балансеров лежат в консуле, это не усложнение, десяток строк сверху и все)
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
Ну и бан происходит пару раз в год.
А сессии из редиса каждые пару мс вытаскивать.
источник

x

x-foby in Golang Developers — русскоговорящее сообщество
А преимущества-то какие вам даёт JWT в данном случае в сравнении с обычными токенами сессий в базе?
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
если сходу, то
не нужна общая база между несколькими сервисами
источник

x

x-foby in Golang Developers — русскоговорящее сообщество
Ну консул-то общий между несколькими сервисами есть, если я правильно понял вашу схему?
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
есть разница между "держать токены в базе" и "добавить костыль на отзвы", который крайне редко случается и иногда вообще не нужен
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
(если что я не фанат jwt, он просто решает ряд вопросов)
тут все началось с того, что я отметил фейспалм в 99% туториалов по jwt
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
С jwt есть нюанс - как будете отзывать? У каждого свой подход. Я про свой рассказал. В общем вопросов не понял.
источник

x

x-foby in Golang Developers — русскоговорящее сообщество
Я правильно понимаю, вы отозванные токены храните в консуле?
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
Да. Потому что так проще всего.
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
Выше сказал - отзыв проще делать на уровне api gateway
источник

x

x-foby in Golang Developers — русскоговорящее сообщество
При этом токены отзываются крайне редко, поэтому JWT в вашем случае позволяет избежать хранения токенов доступа в БД?
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
jwt позволяет не делать лишних запросов. Т.е делать
if (payload.role == 'manager') {
 createPost(user_id: payload.user_id, ...other data)
}
без загрузки пользователя, его прав и тп
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
если нужно грузить данные пользователя, то смысла в jwt нет, вот есть сессии, токены в базе и тп
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
Alexey Yurchenko
если нужно грузить данные пользователя, то смысла в jwt нет, вот есть сессии, токены в базе и тп
смысла нет, но это в большей части туториалов показано как пример использования 🤦‍♂️
источник

x

x-foby in Golang Developers — русскоговорящее сообщество
То есть вы все нужные данные в нагрузке передаёте и в базу для получения пользовательских данных (необходимых для авторизации) не стучитесь вообще?
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
Да, это и есть смысл jwt по большей части
источник

x

x-foby in Golang Developers — русскоговорящее сообщество
Господи, да я знаю, в чём смысл JWT) Меня интересует именно ваш кейс, потому что очень смутно вы описали всё
источник

x

x-foby in Golang Developers — русскоговорящее сообщество
В целом всё понятно, и я согласен с вами.
Одно не понятно, как вы отзываете токены, если вы их нигде не храните? Что в стоплисте является идентификатором, по которому вы понимаете, что пришедший токен — отозванный.

Вы там про какой-то костыль говорили на уровне шлюза, но из описания ничего не понятно.
источник

AY

Alexey Yurchenko in Golang Developers — русскоговорящее сообщество
x-foby
В целом всё понятно, и я согласен с вами.
Одно не понятно, как вы отзываете токены, если вы их нигде не храните? Что в стоплисте является идентификатором, по которому вы понимаете, что пришедший токен — отозванный.

Вы там про какой-то костыль говорили на уровне шлюза, но из описания ничего не понятно.
как хранить сами токены то? они каждый раз разные. не меняется только payload
источник