Как устроена аутентификация, когда серверов больше чем 1?
Всем привет.
Прошу помочь разобраться с тем, как устроена аутентификация в случае с несколькими серверами.
Для примера возьмем аутентификацию по jwt-токену и django. Если я правильно понимаю, то при регистрации/входе токен выдается "модулем" аутентификации, который прилагается к django. Далее этот токен сохраняется на клиенте, и с каждым последующим запросом отправляется на сервер, сервер с помощью все того же "модуля" аутентификации проверяет этот токен, и если все хорошо, то запрос выполняется. По крайней мере мне кажется что это работает так, дальнейшие рассуждения исходя из вышесказанного.
Теперь, допустим, возьмем инстаграм, который как раз изначально делался на джанге. У него есть куча таких вот серверов с джангой, между которыми распределяются запросы, чтобы справляться с нагрузкой, ведь один сервер такого огромного количества запросов не сможет быстро обработать. Допустим, это 100 серверов. Я регистрируюсь в инстаграм и попадаю на сервер №54, который мне выдает токен. Вопрос: теперь этот токен проверить может только сервер №54 и все мое взаимодействие с инстаграм будет происходить через сервер №54(до момента переиздания токена другим сервером)?
Ключ, о котором идет речь, это какой-то ключ "из коробки", раз о нем все знают? Или этот ключ генерируется, а потом рассылается всем остальным серверам?
Сергей Горностаев, спасибо. Ознакомился, появилось больше понимания. Вот только прочитал, что например мобильные приложения не используют такой способ, потому что быстро истекает токен. Может Вам известно какой способ предпочтителен в случае с мобильными приложениями?
Спасибо за наводки, я уже читал и если честно каша в голове. Насколько я понимаю везде говорится что это сторонние "сервисы" и у меня ассоциация что это когда "Войти через фейсбук", например. Но вот если я регистрируюсь например в том же инстаграм через обычную почту и пароль, в этом случае кем выдается токен? или там не токен а что-то другое? в общем хочется понять, как в современных проектах реализован вход без сторонних сервисов
orbit070, вы программист или кто?) Если не помогли одни материалы то попробуйте другие. Я могу рассказать хоть в деталях, но если у вас лично не сложится понимание то все это бесполезно. Сторонние сервисы в подавляющем числе проектов (я не про колхозный самопис)
Иван Шумов, не нужно в деталях, просто либо вы совсем о другом говорите, либо я не улавливаю. Если есть какой-то сторонний сервис атворизации, то в чем смысл сотен серверов у компании N, если будет узкое место в виде стороннего сервиса авторизации? Или сторонние сервисы выдерживают любые нагрузки? получается они платные, раз могут выделять такое количество мощностей?
Но вот если я регистрируюсь например в том же инстаграм через обычную почту и пароль, в этом случае кем выдается токен? или там не токен а что-то другое? в общем хочется понять, как в современных проектах реализован вход без сторонних сервисов
Когда вы регистрируетесь через сторонний сервис, он (сервис) всего лишь подтверждает, что вы — это вы (ну и может заодно какой-то инфы дополнительной выдать). Дальше вся авторизация работает точно так же, как если бы вы регистрировались локально. Т.е. учётка локальная, и просто где-то есть запись о том, что это регистрация через сторонний сервис. Вариант, когда у вас каждый раз идёт подтверждение у стороннего сервиса, что вы — это вы, я таких даже и не знаю, потому что в этом нет особого смысла и под это, наверное, нет задач. Хотя в своё время мы такой сервис делали, было очень удобно, но и задача была специфическая.