No video

HTTP сессии и cookies на чистом Node.js

  Рет қаралды 11,866

Timur Shemsedinov

Timur Shemsedinov

Күн бұрын

Примеры кода: github.com/How...
Курс «100 лекций по программированию» habr.com/post/...
#сессия #session #куки #http #cookie #nodejs #javascript #js #routing

Пікірлер: 49
@gagogoga794
@gagogoga794 3 жыл бұрын
Этот чувак просто бомбический материал даёт! Не останавливайся!
@TimurShemsedinov
@TimurShemsedinov 3 жыл бұрын
Это еще посмотри kzbin.info/www/bejne/gmi8mJhrhc1jsJY
@gagogoga794
@gagogoga794 3 жыл бұрын
@@TimurShemsedinov смотрел 👍🏻 Могу сказать тоже самое, материал отличный.
@Ajax222able
@Ajax222able 3 жыл бұрын
классная лекция. можно было начать с того, что такое сессии и зачем они нужны
@ellisdos6714
@ellisdos6714 3 жыл бұрын
классная лекция, механизм кук и сессий, пояснен просто и красиво, кое где подправил в файлах и у меня завелось, спасибо очень хорошо для понимания
@user-uz3im1ct6e
@user-uz3im1ct6e 4 жыл бұрын
Спасибо большое за лекцию!)
@antonanton22743
@antonanton22743 5 жыл бұрын
Спасибо
@TimurSevimli
@TimurSevimli Жыл бұрын
Спасибо! Как всегда, было очень интересно)
@kulishkul
@kulishkul 3 жыл бұрын
Спасибо!
@user-uz3im1ct6e
@user-uz3im1ct6e 4 жыл бұрын
В лекции на 56 минуте вы говорите что уже писали пример роутинга на чистой ноде. Подскажите пожалуйста, а можно где нибудь посмотреть этот пример. Именно усложненный и расширенный пример, с передачей переменных, с регулярными выражениями?
@TimurShemsedinov
@TimurShemsedinov 4 жыл бұрын
Есть, но лучше подождать стартер кит, о котором я тут рассказываю, буквально пару недель и будет хороший пример не только с роутингом, но и с целым списком возможностей kzbin.info/www/bejne/fXu8Y5eveptmaJo&t=480
@user-ye8zh3ep7m
@user-ye8zh3ep7m 4 жыл бұрын
Это уже законченый проект или вы его еще дописывали в других лекциях?
@TimurShemsedinov
@TimurShemsedinov 4 жыл бұрын
Это заготовка, как и в других лекциях, из нескольких таких заготовок можно скрутить проект. Чуть позже я буду делать видео, как скручивать. Сейчас занят подготовкойикурса по ООП и по базам данных
@user-bs9lo1ib9l
@user-bs9lo1ib9l 4 жыл бұрын
Спасибо)
@MrMaratamba
@MrMaratamba 4 жыл бұрын
Метод Session.restore точно должен быть синхронным? А если callback для storage.get в Session.restore будет вызван позже чем завершен ответ клиенту? Или в роутере мы не увидим сессию хотя она есть в хранилище, но не успела оттуда считаться? Разве не следует сделать и Session.restore асинхронным (возвращающим промис?)
@MrMaratamba
@MrMaratamba 4 жыл бұрын
Отвечаю сам себе - вижу на github уже исправленный код.
@TimurShemsedinov
@TimurShemsedinov 4 жыл бұрын
См. тут 1:26:00 я из restore промис возвращаю
@user-ye8zh3ep7m
@user-ye8zh3ep7m 4 жыл бұрын
1:32:00-1:32:12 можна пример кода с await new ?
@TimurShemsedinov
@TimurShemsedinov 4 жыл бұрын
Вот тут пример асинхронного конструктора github.com/HowProgrammingWorks/AsyncAwait/blob/master/JavaScript/4-constructor.js
@LogopedLTD
@LogopedLTD Жыл бұрын
я так понимаю, что и это не лучший способ генерировать токен?) в нем разве не должно быть рашифровано какие-то данные? или как вы и говорите идея JWT вам не нравиться
@ilyakozel5472
@ilyakozel5472 2 жыл бұрын
У вас нет желания написать MIT E-Learning CMS с видео разбором кода?
@TimurShemsedinov
@TimurShemsedinov 2 жыл бұрын
Ни малейшего
@MrMaratamba
@MrMaratamba 4 жыл бұрын
Ещё вопрос по удалению: client.token = undefined; client.session = null; Почему для session используется именно null а для токена undefined?
@TimurShemsedinov
@TimurShemsedinov 4 жыл бұрын
Потому, что null - это пустое значение ссылочного типа, а undefined - скалярного
@houston9114
@houston9114 3 жыл бұрын
что сначала учить node или nest? на работах требуют nest, можно ли обойтись без node?
@TimurShemsedinov
@TimurShemsedinov 3 жыл бұрын
Сначпла js и ts, потом асинхронное программирование, потом нода, а потом уже какие-то фреймворки. Иначе конечно можно по аналогии что-то писать, но не будешь особо понимать, как оно работает и по 100 раз переделывать будешь
@houston9114
@houston9114 3 жыл бұрын
@@TimurShemsedinov понял, спасибо
@lishtvansergey5595
@lishtvansergey5595 3 жыл бұрын
Нет опасности что generateToken() сгенерирует токен, который уже существует?
@TimurShemsedinov
@TimurShemsedinov 3 жыл бұрын
Есть конечно, но это порядка 1 раз за октиллион лет, если генерить всеми вычислительными ресурсами человечества
@TimurShemsedinov
@TimurShemsedinov 3 жыл бұрын
на таких допущениях вся криптография работает, иногда добавляют механизмы выявленния коллизий с перегенерацией, но это не обязательно, при таких вероятностях
@lishtvansergey5595
@lishtvansergey5595 3 жыл бұрын
@@TimurShemsedinov а что мы будем делать если хакер украдет наш токен? или тут обеспечивается безопасность за счет куки вместо localStorage? Но как же тогда быть с Cross-Site request forgery?
@TimurShemsedinov
@TimurShemsedinov 3 жыл бұрын
@@lishtvansergey5595 Ничего страшного, тогда мы будем взломаны.
@lishtvansergey5595
@lishtvansergey5595 3 жыл бұрын
@@TimurShemsedinov :)
@user-kn2id7ph6q
@user-kn2id7ph6q 2 жыл бұрын
1:36:12 недолго адептам ТСа оставалось радоваться))
@TimurShemsedinov
@TimurShemsedinov 2 жыл бұрын
Бывают в жизни минуты, когда все решают секунды, и эти минуты длятся часами
@unev
@unev 4 жыл бұрын
Вы рассказывали про jwt в этой или какой-либо иной лекции? Можете рекомендовать грамотного спеца по node.js из англоязычного мира?
@TimurShemsedinov
@TimurShemsedinov 4 жыл бұрын
Нет, и не буду, мне не нравится идея jwt
@unev
@unev 4 жыл бұрын
@@TimurShemsedinov это было бы не менее интересно послушать
@TimurShemsedinov
@TimurShemsedinov 4 жыл бұрын
Anna Henningsen
@unev
@unev 4 жыл бұрын
@@TimurShemsedinov интересный спец, но маловато просветительской деятельности.
@TimurShemsedinov
@TimurShemsedinov 2 жыл бұрын
@@Sebastian-zz8id Yes, having just long unique random ID as a session identifier will be much more reliable and secure then JWT because of multiple aspects and complexities in JWT right implementation and potential security gaps
@PerfectSwingDance
@PerfectSwingDance 5 жыл бұрын
44:00 лучше писать const PATH = path.join(__dirname, 'sessions') Так как пути Windows и Linux отличаются. Из-за этого не правильно работает проверка на безопасность кода
@TimurShemsedinov
@TimurShemsedinov 5 жыл бұрын
join нужен, но он не защищает от path traversal, нужно делать .startsWith, а вот не поддерживать windows это совершенно нормально
@PerfectSwingDance
@PerfectSwingDance 5 жыл бұрын
@@TimurShemsedinovБудут ли лекции по веб безопасности в Node.js? Было бы очень интересно
@TimurShemsedinov
@TimurShemsedinov 5 жыл бұрын
@@PerfectSwingDance это не моя прямая специализация, но думаю да, какие-то основы можно дать. Есть много докладов по безопасносьи в ноде на разных javascript конференциях, пока поищите в ютюбе
@TimurShemsedinov
@TimurShemsedinov 4 жыл бұрын
@@PerfectSwingDance Уже есть kzbin.info/www/bejne/hpXJoGR9Ysx8bNU
@LogopedLTD
@LogopedLTD Жыл бұрын
Не ставьте всякие гадости из нпм!
@fedordostoevskiy4209
@fedordostoevskiy4209 Жыл бұрын
Не доживём наверное с такими делами. Это я про expires cookies😂. Вообще-то не смешно...
Необработанные ошибки в промисах на Node.js
31:32
💻 Безопасность приложений Node.js Security
1:07:47
拉了好大一坨#斗罗大陆#唐三小舞#小丑
00:11
超凡蜘蛛
Рет қаралды 14 МЛН
Dad Makes Daughter Clean Up Spilled Chips #shorts
00:16
Fabiosa Stories
Рет қаралды 2,8 МЛН
Magic? 😨
00:14
Andrey Grechka
Рет қаралды 20 МЛН
Голливудский конвейер звёзд
29:20
GreenGrass
Рет қаралды 357 М.
Скаффолдинг для API, UI и данных
31:03
Timur Shemsedinov
Рет қаралды 5 М.
Приключения Node.js в продакшене
39:12
Yandex for Developers
Рет қаралды 9 М.
Проектирование логики аутентификации и авторизации: cookies, JWT, SSO, OAuth 2.0.
1:55:12
HTTP сервер на Node.js (routing, cluster, IP sticky)
1:08:57
Timur Shemsedinov
Рет қаралды 16 М.
Семафоры и мьютексы в JavaScript и Node.js
1:19:06
Timur Shemsedinov
Рет қаралды 10 М.
拉了好大一坨#斗罗大陆#唐三小舞#小丑
00:11
超凡蜘蛛
Рет қаралды 14 МЛН