1. Сервер не имеет контроля над токенами - принудительное разлогирование можно реализовать без blacklist/whitelist, если подписывать токены секретным ключом + "соль" (уникальная для юзера). При изменении "соли" токен перестанет быть валидным для этого пользователя. 2. Токены можно использовать на разных доменах - в случае с Http only cookie похоже нельзя. 3. Защита от угона токена - в токене можно хранить дату, до которого он валиден, и fingerprint пользователя (ip, user-agent и тп).
Максим, спасибо за труд, за прекрасную, лаконичную, понятную и структурированную подачу материала. Захотелось посмотреть остальные видео с Вашего канала.
Как будет время, разбери пожалуйста на примерах, как правильно организовать роли и права и что используют обычно, casbin или самому можно написать реализацию. Желательно не только админ, гость, пользователь а более кастомные с назначением прав и тд.
Серверу нужна информация о записи текущей сессии пользователя в любом случае. В случае сессий по куки он их ищет в каком-нибудь реддисе, либо же у себя в папочке в txt документе. В случае токена, он лезет в базу, что бы найти этого пользователя и его пермишены, так что в общем то оверхеда никакого нет.
Идентификация это как раз таки и есть who are you, а вот аутентификация это уже подтверждение того, что ты - это точно ты. Проще говоря, когда на сайте просят ввести логин/номер телефона/почту - это идентификация - вы ввели логин user, окей, на сайте вы будете user. Когда просят пароль - это аутентификация: вы user, окей, а докажи это, введя пароль. Если путаете понятия, просто вспомните о существовании двухфакторной аутентификация, ведь по сути это подтверждение того, что user это точно вы - вы вели логин и пароль, а сайт говорит: «Логин есть, пароль правильный, но это точно ты? Я отправил на твой телефон смс с кодом, введи его сюда».
Если конечно делаешь многопользовательский сайт стандартную ЦМСКУ, по-любому сессий хватит если их использовать с умом и не хранить там всякую дичь, с только короткие числовые значения типа id юзеров, id группы, ну и метку времени жизни сессии, то нагрузка на сервер минимальная, + можно обнулять сессии через 15 минут неактивности, а помнить юзеров при помощи куки и токена в базе, после аутентификации сохранять данные в сессии. Это старый надежный способ.
Вопрос. Что обычно кидают в тело токена? Было сказано, что в токене лучше не передавать конфиденциальную инфу. А что туда пихать? id ?)) Я вот этот момент не понял.
по сути тебя интересует только правда или неправда, это реализуется симметричным шифрованием, шифруешь "thue" - когда расшифровываешь получаешь или тру или ошибку что в JS false :) ... а вся эта информация котрая туда напихана это просто соль.
В принципе, для простоты можно использовать id сессии, которая генерируется БД. Но можно и зашифровать некую строку с данными пользователя, которая и будет считатьтся идентификатором, то есть применить тот же подход, что и с токенами.
я думаю да... зачем еще раз колесо изобретать... просто один светится часто другой запрятан... От противного, если он более доверительный то почему бы аксес не сделать такимже...
не понимаю зачем... лучше или написать 404 мол нету такого забей и не ищи или ты же чего-то искал дать тебе какую-то пургу случайную с соседних сайтов, сиди разбирайся ;)
Самое понятное объяснение, которое я нашел. Такое впечатление, что люди выкладывают видео для того, чтобы показать какие они великие программисты. Новичкам надо рассказывать максимально просто. А синьоры это уже итак знают.
Макс, є запитання. Сервер генерує пару токенів, refreshToken з яких зберігається в БД. В такому випадку це не означає, що сервер стає stateful? І ще одне невелике запитання. Якщо зберігати токен в http only куках, а не в local/session storage, тоді яким чином ми зможемо відправляти реквест із заголовком Authorization з клієнта? Нам ж потрібно витягнути звідкись цей токен за допомогою JS, або ж я щось не зрозумів...
В чем смысл делать скрин с текстом и проговаривать его словами? Проще статью почитать, не отвлекаешься на голос. Ценность видео должна быть в графическом представлении информации
Ещё бы живой пример каждого подхода, например, бэк на Go и форма авторизации на React - вообще было бы супер. Чувствуется какая-то недосказанность в видео.
Всё сказано абсолютно четко и понятно - где хранить и как передавать. Если кто-то хочет узнать как создавать сессии, устанавливать куки, генерировать токены и т.д, тот пойдёт и найдёт эту информацию в интернете.
Очень сложная и тяжелая для восприятия информация, поданая очень простым языком. Спасибо Макс.
1. Сервер не имеет контроля над токенами - принудительное разлогирование можно реализовать без blacklist/whitelist, если подписывать токены секретным ключом + "соль" (уникальная для юзера). При изменении "соли" токен перестанет быть валидным для этого пользователя.
2. Токены можно использовать на разных доменах - в случае с Http only cookie похоже нельзя.
3. Защита от угона токена - в токене можно хранить дату, до которого он валиден, и fingerprint пользователя (ip, user-agent и тп).
Соль в данном случае как раз будет неявной реализацией black/white list, а сама архитектура stateful
Очень нравится твой канал! Продолжай в том же духе! И помни "много уроков не бывает" =)
Максим, спасибо за труд, за прекрасную, лаконичную, понятную и структурированную подачу материала. Захотелось посмотреть остальные видео с Вашего канала.
Спасибо, красивый дяденька! 🎉
Огромное спасибо! Видео - кладезь информации, объяснения понятны даже фронтендеру :D
Хороший видосик. 👍
Все хорошо, но зАголовок режет слух. ЗаголОвок, если что
Тоже резануло, меня вообще такое сильно отвлекает от просмотра
Аксесс токен тоже режет слух :))
Он ж с Украины, грех жаловаться
Он с украины, скажи спасибо что он не на нахрюке говорит..
@@warcraft.mp4889русачок образився на мову🥹
Полезная инфа, продолжайте в том же духе👍
Очень доходчиво, спасибо)
Отличное видео, хорошая структура подачи материала! Успехов!
Как будет время, разбери пожалуйста на примерах, как правильно организовать роли и права и что используют обычно, casbin или самому можно написать реализацию. Желательно не только админ, гость, пользователь а более кастомные с назначением прав и тд.
да, норм тема, было бы интересно
Серверу нужна информация о записи текущей сессии пользователя в любом случае. В случае сессий по куки он их ищет в каком-нибудь реддисе, либо же у себя в папочке в txt документе. В случае токена, он лезет в базу, что бы найти этого пользователя и его пермишены, так что в общем то оверхеда никакого нет.
не всегда, пермишены могут быть и в токене зашиты
Это самое понятное объяснение про JWT токены, что я встречал. Спасибо!
Было очень ползено! Спасибо за труд!
Идентификация это как раз таки и есть who are you, а вот аутентификация это уже подтверждение того, что ты - это точно ты.
Проще говоря, когда на сайте просят ввести логин/номер телефона/почту - это идентификация - вы ввели логин user, окей, на сайте вы будете user. Когда просят пароль - это аутентификация: вы user, окей, а докажи это, введя пароль.
Если путаете понятия, просто вспомните о существовании двухфакторной аутентификация, ведь по сути это подтверждение того, что user это точно вы - вы вели логин и пароль, а сайт говорит: «Логин есть, пароль правильный, но это точно ты? Я отправил на твой телефон смс с кодом, введи его сюда».
Если конечно делаешь многопользовательский сайт стандартную ЦМСКУ, по-любому сессий хватит если их использовать с умом и не хранить там всякую дичь, с только короткие числовые значения типа id юзеров, id группы, ну и метку времени жизни сессии, то нагрузка на сервер минимальная, + можно обнулять сессии через 15 минут неактивности, а помнить юзеров при помощи куки и токена в базе, после аутентификации сохранять данные в сессии. Это старый надежный способ.
Огонь, прям разжевал и в рот положил ! Спасибо за видео очень понятно и информативно :-)
Молодец! Спасибо!
Это просто клад а не видео, спасибо
Спасибо, хорошо рассказал!
Очень круто, максимально понятно, спасибо❤🔥
Вопрос. Что обычно кидают в тело токена?
Было сказано, что в токене лучше не передавать конфиденциальную инфу.
А что туда пихать? id ?))
Я вот этот момент не понял.
по сути тебя интересует только правда или неправда, это реализуется симметричным шифрованием, шифруешь "thue" - когда расшифровываешь получаешь или тру или ошибку что в JS false :) ... а вся эта информация котрая туда напихана это просто соль.
@sovaplayed ну значит ты не понимаешь то что я написал...
@sovaplayed ты знаешь что подразумевают под словом соль в шифровании?
Огромное спасибо за видео:)
Отличный разбор темы!👍 Спасибо!
Спасибо, очень познавательно! Респект!
Спасибо Вам большое 🤍
Все хорошо, но слово зАголовок с ударением на первый слог, чуть не съело мой мозг.
Большое спасибо, относительно просто описали
спасибо!
Спасибо тебе! Очень доступно объясняешь!
Спасибо огромное за такое простое объяснение!
Спасибо! Ты понятно объяснил и очень помог
🙌🏻
Хорошо объяснено. А в сессиях ID сессии тоже ведь генерируется каким то шифрованием?
В принципе, для простоты можно использовать id сессии, которая генерируется БД.
Но можно и зашифровать некую строку с данными пользователя, которая и будет считатьтся идентификатором, то есть применить тот же подход, что и с токенами.
Микрофон вроде нормальный, а звук нет - зашкаливающе басит
спасибо дружище!
Спасибо огромное!!
Так и не понял, JWT используется в access/refresh токенах, или это отдельный вид?
я думаю да... зачем еще раз колесо изобретать... просто один светится часто другой запрятан... От противного, если он более доверительный то почему бы аксес не сделать такимже...
Нам потрібно терміново відео по авторизаціях та ролях :)
Прекрасно объяснил.
Топ! Спасибо за разбор.
Круто!!!
Отлично спасибо
что мешает злоумышленнику перехватить айди сессии и заполучить доступ?
как говорит он, то что в куки, к тому js через xss не доберётся
@@benitozara5011 , можно перехватить пакеты, если http.
он же сказал, что данные шифруются
пушка 💪
А что такое тогда идентификация?
JWT имба
Пасиб
🔥🔥🔥🔥🔥
1:50 Спасибо, а я всё думал, почему тот парень 403 ошибки на фронтэнд кидал
не понимаю зачем... лучше или написать 404 мол нету такого забей и не ищи или ты же чего-то искал дать тебе какую-то пургу случайную с соседних сайтов, сиди разбирайся ;)
Самое понятное объяснение, которое я нашел. Такое впечатление, что люди выкладывают видео для того, чтобы показать какие они великие программисты. Новичкам надо рассказывать максимально просто. А синьоры это уже итак знают.
Классное видео. Не мог бы ты подробнее рассказать про сервис авторизации?
Дай боже тобі здоров'я, бо ніхто не міг пояснити. Красава.
А вы можете своих видео, показать тестовое задание, и показать его на примере на go
Спасибо
Спасибо!
Круто...
спасибо
ЗаголовОк... ))) разве нет? )) у Макса такое произношение этого слова, что я остальные его слова не слышу ))
заголОвок
даешь зАголовок, блеа!)
Видео информативное, спасибо! Но, пожалуйста, говорите слово "загoлОвок" правильно, ухо режет :)
в зАголовках))
Макс, є запитання. Сервер генерує пару токенів, refreshToken з яких зберігається в БД. В такому випадку це не означає, що сервер стає stateful?
І ще одне невелике запитання. Якщо зберігати токен в http only куках, а не в local/session storage, тоді яким чином ми зможемо відправляти реквест із заголовком Authorization з клієнта? Нам ж потрібно витягнути звідкись цей токен за допомогою JS, або ж я щось не зрозумів...
В чем смысл делать скрин с текстом и проговаривать его словами? Проще статью почитать, не отвлекаешься на голос. Ценность видео должна быть в графическом представлении информации
в чем смысл этого комментария?
зАголовок, боже, как это тригерит)
А как клиент отправляет пароль и логин на сервер. Он шифруется? Если шифруется, то как передаются ключи шифрования, как это работает?
Http не шифрует
Почитай про https
Ещё бы живой пример каждого подхода, например, бэк на Go и форма авторизации на React - вообще было бы супер. Чувствуется какая-то недосказанность в видео.
Всё сказано абсолютно четко и понятно - где хранить и как передавать. Если кто-то хочет узнать как создавать сессии, устанавливать куки, генерировать токены и т.д, тот пойдёт и найдёт эту информацию в интернете.
Дружище, ну ненавидишь ты русский язык или просто слово заголовок, ну скажи header. Зачем так уродовать слово то?
зАголовок? Ты норм? Зачем ты так говоришь, если это неправильно
Ударение у автора странноватое: дОмены и зАголовки
зАголовок? Ты серьезно?
зАголовок🤦♂
зАгловок ахаха
ЗаголОвок
Ударение в слове "зАголовок" - не на первый слог. Проверочное слово "голова". Учите русский язык.
выучи за 2 года украинский на том уровне, на котором я выучил русский
тогда поговорим
Отличное видео, хорошая структура подачи материала! Успехов!
спасибо!
Спасибо 👍
заголОвок
спасибо!