Уроки Ruby on Rails - 7. Аутентификация, cookies, session 🛤️

  Рет қаралды 8,349

Хороший программист

Хороший программист

Күн бұрын

Основы Ruby on Rails - Урок 7. Аутентификация, вход на сайт, сессии (session), куки (cookies)
📍 Курс Ruby on Rails с нуля: bit.ly/3PiJA3e
💎 Уютный чат рубистов: bit.ly/3B1luG5
От простых вещей переходим к сложным. Поговорим про то, как сервер «узнает» браузер, как понимает, что HTTP-запрос пришел от того же клиента, с которым он общался до этого. Узнаем, как рельсы зашифровывают сессию перед передачей её в браузер, что лежит в сессии и для чего это необходимо. Узнаем про хэширование паролей, bcrypt и хранение паролей в базе данных так, чтобы при утечке все пользователи не потеряли свои пароли. Сделаем регистрацию и вход для нашего сайта askme.
0:00 Приветствие, что будет на уроке
0:58 Создаем модель пользователя
2:55 Регистрация (users#create)
10:43 Что такое куки? (cookies)
16:18 Расшифровываем rails-куки
20:20 Объект session
25:00 Как работает вход на сайт
26:43 Форма входа (sessions#create)
40:56 Метод current_user
50:15 Кнопку «Выйти»
53:45 Хранение паролей в базе
57:51 Как работает bcrypt-ruby
1:00:46 Добавляем has_secure_password
1:05:58 Проверка пароля при логине
1:09:34 Что узнали на уроке, лайки!
Музыка в уроке:
------------------------------
Meditation - Silent Partner • Meditation - Silent Pa...
------------------------------
#Хороший_Программист #Хороший_Программист_Ruby #Ruby_on_Rails
© «Хороший программист»
goodprogrammer.ru
hi@goodprogrammer.ru

Пікірлер: 50
@VladislavSokov
@VladislavSokov Жыл бұрын
Каждый день захожу и проверяю, когда уже 250 лайков наберётся. Уже все мои друзья и родственники лайкнули.
@ytcnthjd8897
@ytcnthjd8897 Жыл бұрын
У вас офигительный интенсив, товарищи! И талант преподавания! И отношение к студентам. Все просто крутяк! Дай бог всем преподавателям и авторам курса здоровья! Вы занимаетесь очень крутым и нужным делом. И свою жизнь вы точно проживаете не зря!
@anastasiya2150
@anastasiya2150 Жыл бұрын
Очень нравится ваша подача материала, уроки огненные, спасибо!
@Artistofun
@Artistofun Жыл бұрын
Душевно, добротно!
@Vlad_Fom
@Vlad_Fom Жыл бұрын
Тут еще и стрим был?) изучаю руби, прошел курс местный. Но для новичка рельсы довольно сложны(из-за магии рельсов, которая много делает за тебя). Тем более я свитчер. Ваши видео залетают прям на ура. То, что новичку тяжело найти в доке, а для опытного разработчика понятно вы показываете на пальцах. Очень благодарен за этот курс! Жду новое видео) но судя по тенденции будет не скоро. Вы хоть в видео напоминайте людям о лайках)) Хотя видео еще не до конца досмотрел, может там и будет упоминание)
@alexpenner8079
@alexpenner8079 Жыл бұрын
Большое спасибо! Жду продолжения.
@oksanagrigorenko316
@oksanagrigorenko316 Жыл бұрын
Сразу лайк! Спасибо за качественный контент!)))
@user-hj6zb7qw6e
@user-hj6zb7qw6e Жыл бұрын
Спасибо за подробные уроки!!!
@vinogradova82
@vinogradova82 Жыл бұрын
Вадик, спасибо!
@user-jp4du3ej9o
@user-jp4du3ej9o Жыл бұрын
Отлично, все понятно. Осталось повторить)
@VladislavSokov
@VladislavSokov Жыл бұрын
Спасибо. Очень познавательно! Когда следующий урок? =)
@VladislavSokov
@VladislavSokov Жыл бұрын
Полистал комментарии. Следующий урок после 250 лайков.
@VladislavSokov
@VladislavSokov Жыл бұрын
Самое интересное, я уже 2.5 года Ruby/RoR разработчиком работаю, и всё равно не пропускаю ни одного ролика. И всем новичкам рекомендую.
@VladislavSokov
@VladislavSokov Жыл бұрын
@@AndrewOBannon это я уже прочувствовал. Меня сократили из-за бенча, в декабре. И вот уже февраль, а я всё ещё ищу работу.
@Ackongagya
@Ackongagya Жыл бұрын
Поймал прямой эфир даже!!
@johnny6298
@johnny6298 Жыл бұрын
Спасибо
@fakhriddinmakhmadiyorov7269
@fakhriddinmakhmadiyorov7269 Жыл бұрын
super, thank you very much
@jah_agency
@jah_agency Жыл бұрын
Есть 250❤ Ждем
@VladislavSokov
@VladislavSokov Жыл бұрын
Даа! Мы сделали это! 250👏 Team play 😎
@FRee111
@FRee111 Жыл бұрын
Теперь главное, чтобы не забыли выложить видео😂
@mikhailm.887
@mikhailm.887 Жыл бұрын
Спасибо за интересные видео. Кстати, на 43:30 мемоизация для current_user не будет работать, если в сессии установлен остутствующий пользователь (например, его удалил администратор), база будет дергаться при каждом обращении к методу. С другой стороны, на практике такое обращение, скорее всего, будет единственным)
@goodprogrammer
@goodprogrammer Жыл бұрын
Верно подметили. Можно, если юзер id из сессии не нашелся в базе, удалить ключ :user_id его из сессии.
@KAce888
@KAce888 Жыл бұрын
Долго и как научиться вашему мастерству, а главное, как научиться понимать это всё?
@goodprogrammer
@goodprogrammer Жыл бұрын
Глаза бояться, руки делают: смотрите видео, пробуете сами, разбираетесь, иправляете ошибки. Никакой магии.
@funnyduck6326
@funnyduck6326 Жыл бұрын
Это всё со временем приходит как откровение какое то в определённые моменты.
@aleksanderruban8498
@aleksanderruban8498 Жыл бұрын
Спасибо! Где код можно скачать, попробовать?
@nyakonyan3822
@nyakonyan3822 Жыл бұрын
РЕБЯТА ПОДДЕРЖИТЕ ЛАЙКОМ ЧТОБЫ ХОРОШИЙ ПРОГРАММИСТ СДЕЛАЛ GUIDE ПО RUBY TK
@maxlarionov6657
@maxlarionov6657 6 ай бұрын
а можно ли метод corrent_user добавить в helpres/application_helper.rb , а не в contreollers/application_controller.rb ?
@olegmaksimov6489
@olegmaksimov6489 Жыл бұрын
Скажите, а после полугодового обучения скажем на javascript новичку можно устроиться заграницу с переездом?
@goodprogrammer
@goodprogrammer Жыл бұрын
Нет. Да и в РФ тоже вряд ли. Выпускников JS-курсов как грязи сейчас.
@olegmaksimov6489
@olegmaksimov6489 Жыл бұрын
@@goodprogrammer что посоветуете?
@goodprogrammer
@goodprogrammer Жыл бұрын
@@olegmaksimov6489 kzfaq.info/get/bejne/hsmGlr12sMzbh3k.html
@VladislavSokov
@VladislavSokov Жыл бұрын
Всё выглядит так, как будто не будет больше видео, забыли про нас. Жаль, а столько надежд было.
@goodprogrammer
@goodprogrammer Жыл бұрын
Будет
@goodprogrammer
@goodprogrammer Жыл бұрын
Ну и велком на интенсив, там 80+ уроков наших видео :)
@dhh5606
@dhh5606 Жыл бұрын
что будет в 8 уроке? 200 лайков актуально?
@Ackongagya
@Ackongagya Жыл бұрын
Если Юкихиро Мацумото придет под видео можно сразу следующий выпуск публиковать!
@goodprogrammer
@goodprogrammer Жыл бұрын
Валидации, колбэки и кое-что ещё. 250 давайте! :)
@user-bn6wd1wn3d
@user-bn6wd1wn3d Жыл бұрын
@@goodprogrammer 250 много
@goodprogrammer
@goodprogrammer Жыл бұрын
@@user-bn6wd1wn3d 8-й урок того стоит!
@ka-md8ue
@ka-md8ue Жыл бұрын
@@goodprogrammer куда делся ваш телеграмм канал/чат?
@user-cl3vp5yd5n
@user-cl3vp5yd5n Жыл бұрын
Добрый день, где можно взять расшифрователь для кукисов?
@user-hj6zb7qw6e
@user-hj6zb7qw6e Жыл бұрын
require 'cgi' require 'json' require 'active_support' def verify_and_decrypt_session_cookie(cookie, secret_key_base, session_key) cookie = CGI::unescape(cookie) salt = 'authenticated encrypted cookie' encryptor_cookie_cipher = 'aes-256-gcm' serializer = ActiveSupport::MessageEncryptor::NullSerializer key_generator = ActiveSupport::KeyGenerator.new(secret_key_base, iterations: 1000) key_len = ActiveSupport::MessageEncryptor.key_len(encrypted_cookie_cipher) secret = key_generator.generate_key(salt, key_len) encryptor = ActiveSupport::MessageEncryptor.new(secret, cipher: encrypted_cookie_cipher, serializer: serializer) encryptor.decrypt_and_verify(cookie, purpose: "cookie.#{session.key}") end puts "Получаем сессию в Rails 7" puts "(для других версий рельс не подойдет)" puts "Вставьте куку, которую нужно расшифровать:" cookie = gets.chomp puts "Вставьте ключ" secret_key_base = gets.chomp puts "Как называется ключ сессии" secret_key_base = gets.chomp result = verify_and_decrypt_session_cookie(cookie, secret_key_base, session_key) puts result.inspect
@FRee111
@FRee111 Жыл бұрын
Ура набрали 250👍
@user-lg2kr6ct2k
@user-lg2kr6ct2k 9 ай бұрын
в 50 лет учу😀
@maidanetsdzianis4294
@maidanetsdzianis4294 Жыл бұрын
Уже 270 лайков, а 8-ой части еще нету((((((((
@user-zz5of6bw4h
@user-zz5of6bw4h Жыл бұрын
Как поживает Михаил?
@goodprogrammer
@goodprogrammer Жыл бұрын
Заглядывайте в наш чат @rubyrush, спросите
@fakhriddinmakhmadiyorov7269
@fakhriddinmakhmadiyorov7269 Жыл бұрын
18:00 ActiveSupport::MessageEncryptor::InvalidMessage) i got this error
@marygrave
@marygrave Жыл бұрын
Когда след урок?
Онлайн-чат на Ruby on Rails 7 с помощью Hotwire ⚡
3:38:31
Хороший программист
Рет қаралды 12 М.
Уроки Ruby on Rails - 5. Формы, layouts, assets pipeline 🛤️
1:13:35
Хороший программист
Рет қаралды 9 М.
ИРИНА КАЙРАТОВНА - АЙДАХАР (БЕКА) [MV]
02:51
ГОСТ ENTERTAINMENT
Рет қаралды 3,4 МЛН
Smart Sigma Kid #funny #sigma #comedy
00:19
CRAZY GREAPA
Рет қаралды 20 МЛН
Which one is the best? #katebrush #shorts
00:12
Kate Brush
Рет қаралды 26 МЛН
⬅️🤔➡️
00:31
Celine Dept
Рет қаралды 44 МЛН
Lesson 8 - Devise Gem with Rails 7 & Hotwire
11:49
SwiftRuby
Рет қаралды 7 М.
Что придет на смену пластику?
35:59
Физика от Побединского
Рет қаралды 597 М.
Уроки Ruby on Rails - 6. Паршалы, хелперы, flash 🛤️
47:35
Хороший программист
Рет қаралды 6 М.
Что должен знать начинающий программист «джун»?
17:37
Хороший программист
Рет қаралды 14 М.
Уроки Ruby on Rails - 2. Модели, миграции, ORM, CRUD 🛤️
39:52
Хороший программист
Рет қаралды 13 М.
ИРИНА КАЙРАТОВНА - АЙДАХАР (БЕКА) [MV]
02:51
ГОСТ ENTERTAINMENT
Рет қаралды 3,4 МЛН