Sanctum с Vue для Laravel 6. beforeEach в router и interceptor response для редиректа при 401 и 419

  Рет қаралды 4,656

Laravel Creative

Laravel Creative

Күн бұрын

Пікірлер: 87
@sergeyromanov1920
@sergeyromanov1920 2 жыл бұрын
Спасибо за курс. некий фикс бага (если вдруг в Лар 9 не работает обновление меню, после логина): с этим у меня стало норм.
@sabr7028
@sabr7028 Жыл бұрын
Спасибо)
@Alex-yr8gw
@Alex-yr8gw Жыл бұрын
Спасибо! Это вот откуда ж нам нужно было узнать об этом, хорошо что есть комментаторы-волшебники, которые откуда-то это берут ))
@konovCode
@konovCode Жыл бұрын
3 часа мучал переделывал разными методами. Спасибо тебе !!!!!!!!!!!
@ramazanstudy570
@ramazanstudy570 11 ай бұрын
@@konovCode совет на будущее: Если во время обучения гдето заступорился, то максимум стоит тратить 1 час на проблему, если не получается, то просто идти дальше. в целом это достаточно важный навык, находить решение во чтобы то не стало, пробовать разное, не сдаваться но во время обучения, в начале пути, просто потратишь время не эффективно потому что в начале пути, очень часто следующие знания дополняют предыдущие почти всегда, ту проблему, которую ты не мог решить сейчас и потратил куча времени, в будущем ты узнаешь о ней и за несколько минут решится она короче говоря, зацыкливаясь на таком сейчас, ты просто тормозишь себя каждый раз ты потратил 3 часа, по итогу наверное многое понял, новое узнал, появилось понимание и эта ошибка запомнилась тебе но стоило ли оно того, когда ты мог заглянуть в комментарии сразу и понять суть ошибки и у тебя ушло бы 1-2 минуты, а те три часа ты мог бы потратить на более нужные знания для тебя, на данный момент ну мое мнение такого, что не стоит зацикливаться сильно
@Игорь-ы5ъ9э
@Игорь-ы5ъ9э 9 ай бұрын
ух, спасибо
@AlexViennaDJ
@AlexViennaDJ 2 ай бұрын
Большое человеческое спасибо!
@андрейпустоселов-г8м
@андрейпустоселов-г8м 9 ай бұрын
Спасибо автору за труд и неравнодушным комментаторам за участие!
@ArtDenis1993
@ArtDenis1993 2 жыл бұрын
Заметил, что после того, как мы добавили в файд bootstrap.js axios.interceptors.response, то ошибка перестала доходить до самого запроса. То есть если при той же регистрации с сервера пришел ответ, что пароль должен быть более 8 символов, то поймать мы этот текст не сможем. Нашел на просторах интернета, что нужно в конце interceptors метода вызвать - return Promise.reject(error); тогда ошибка будет доходить
@xR41derx
@xR41derx Жыл бұрын
Дружище, спасибо тебе! 🙂
@МаксимКодеров-с8т
@МаксимКодеров-с8т 2 жыл бұрын
Вы лучший, с вами я изучил ларавел и написал свой первый проект, спасибо вам за все
@laravelcreative
@laravelcreative 2 жыл бұрын
Благодарю)
@alexeyguch816
@alexeyguch816 2 жыл бұрын
Благодарю за туториал! =)
@zadroshy
@zadroshy Жыл бұрын
Очень полезные обучалки спасибо большое!
@Мир-д1в
@Мир-д1в 3 ай бұрын
Здравствуйте, все превосходно объясняете 👍 и есть вопрос: зачем защитой роутинга заниматься на фронте если есть защита на бэкенде ?
@vimitali7630
@vimitali7630 2 жыл бұрын
Благодарю за курс!
@laravelcreative
@laravelcreative 2 жыл бұрын
Благодарю!)
@vuejs1
@vuejs1 4 ай бұрын
Подскажите, пожалуйста, зачем использовать LocalStorage если все это в куках есть?
@Vibes_a
@Vibes_a 2 жыл бұрын
thank you bro👍🔥🔥🔥
@laravelcreative
@laravelcreative 2 жыл бұрын
Благодарю!)
@ramazanstudy570
@ramazanstudy570 11 ай бұрын
вот и конец этого курса, легкий курс)
@artem-web-developer
@artem-web-developer 11 ай бұрын
Внимание коллеги! Чтобы отлавливать ошибки в блоке catch запросов axios надо дополнить код в bootstrap.js - window.axios.interceptors.response.use(config => {return config}, error => { if (error.response.status === 401 || error.response.status === 419) { localStorage.removeItem('x_xsrf_token') return router.push({ name: 'user.login'}) } throw error // TODO Это важно }) А то не поймете почему у вас error.response пуст в блоке catch
@ровойт
@ровойт Жыл бұрын
у вас лучше выходит по js чем по laravel спас за уроки супер
@mirakmalsultanov3398
@mirakmalsultanov3398 Жыл бұрын
супер, спасибо большое
@jasonbourne4015
@jasonbourne4015 2 жыл бұрын
Здравствуйте! Интересно было бы узнать, не планируете ли сделать курсы по React + Laravel? В интернете нормальных курсов не нашел, а у вас прям талант, очень хорошо объясняете!)
@laravelcreative
@laravelcreative 2 жыл бұрын
Нам надо сначала магаз сделать, потом можно будет подумать о реакте) Разве там так всё сложно?)
@karlengels4956
@karlengels4956 2 жыл бұрын
@@laravelcreative да давайте сначала бомбанем магаз, а вообще нафиг этот реакт
@EllesarPatriot
@EllesarPatriot Жыл бұрын
Область редактора текста занимает 1/4 экрана, при этом не особо нужное дерево файлов еще четверть, при том что имена файлов даже половину области не занимают, и так далее. Было бы прикольно, чтоб текстовая область, которая самая важная в видео, занимала больше всего места
@kirillminecrafter
@kirillminecrafter 2 жыл бұрын
настанет ли когда-нибудь такой момент, когда вы скажете: "Теперь вы знаете всё, что знал я"?
@laravelcreative
@laravelcreative 2 жыл бұрын
Нет)
@maximtresk
@maximtresk 2 жыл бұрын
Спасибо за уроки! Все получилось, кроме обновления навигации. updated() не помогает
@Flex86
@Flex86 2 жыл бұрын
Вы решили эту проблему?
@maximtresk
@maximtresk 2 жыл бұрын
@@Flex86 Решил с помощью vuex
@Flex86
@Flex86 2 жыл бұрын
@@maximtresk Спасибо, буду копать в этом направлении)
@spitzer4077
@spitzer4077 Жыл бұрын
Всё срослось как по маслу. Sanctum оказался намного человеко понятнее чем JWT.. Интересно писал ли автор видео из головы или перед глазами была шпаргалка? :)
@laravelcreative
@laravelcreative Жыл бұрын
Благодарю!) В каких-то сложных местах использую заготовленный код, который пишу сам(смотрю, сверяюсь). Но ирония в том, что при рассказе могу и свой собственный код подзабыть:)
@MrBloxa
@MrBloxa 7 ай бұрын
Товарищ автор, можете подсказать. У меня на OpenServer всё прекрасно работает, но на docker-контейнерах не пашет. Вылетает 401 ошибка и localStorage самоликвидируется. С чем это может быть связанно?
@gamingplay5415
@gamingplay5415 9 ай бұрын
а зачем csrf? там же нужно получить access_token 😅 так же не было показано про время жизни, и способности
@Semen_aqw
@Semen_aqw 7 ай бұрын
В данном случае cfrs как я понимаю сразу решает две задачи - это защита от атак и токен доступа , если у вас просто приложение без ролей Если у вас роли , то да , токен доступа API будет необходим )
@gamingplay5415
@gamingplay5415 7 ай бұрын
@@Semen_aqw не я не про сам csrf) это понятно все, в видео сохраняется только куки от лары а не сам токен. я вот сделал на логине создание токена его и сохраняю и его же использую как bearer token
@gamingplay5415
@gamingplay5415 7 ай бұрын
@@Semen_aqw а так там нужно сначала куки с csrf получить а потом всё остальное иначе cors ошибки летят
@Semen_aqw
@Semen_aqw 7 ай бұрын
@@gamingplay5415 потому что санктиум сделал вот какую хитрую вещь : вы размещаете маршрут вызова этого токена , а дальше вызываете маршрут входа . Если маршрут входа завершиться неудачей , то лара не выдаст вам токен доступа и защиты от атак , вроде это так работает , пока сам не проверял ) А если даже не так , то в запросе логина , при неудачной ответе , мы просто удаляем куки ) Исходя из этого , токен можно взять и из куки ) Опять же пока не экспериментировал пока что , надо попробовать
@Semen_aqw
@Semen_aqw 7 ай бұрын
@@gamingplay5415 так фишка заключается в том , что при неуспешном! входе новый токен, не возвращается) Поэтому данный токен можно использовать как и доступ токена для фронта )
@ernstlaik9549
@ernstlaik9549 Жыл бұрын
Спасибо за курс. Но только есть тут баг. Пока мы кликаем мышкой по ссылкам на страницах, роутинг работает без проблем. Но если руками в адресную строку браузера вбить маршрут /login или /register, то Laravel почему-то воспринимает это как обращение к его файлам login.blade.php и register.blade.php из директории resources/views/auth. И на страницу выводятся формы авторизации и регистрации из этих ларововских файлов, а не то, что мы написале на фронте. И как заставить Laravel игнорировать эти запросы, чтобы они были обработаны на стороне фронтэнда, как при клике мышью по ссылке, вот это непонятно.
@NaizerCoder
@NaizerCoder 5 ай бұрын
Не знаю на сколько решение верное, но работает. Разместить роуты в Web сохраняя порядок: Route::get('{page}', IndexController::class)->where('page','.*'); Auth::routes();
@geniygames4620
@geniygames4620 Жыл бұрын
Делаю на composition api. Получилось только после тога как добавил onBeforeUpdate(() => { getToken() }) и строку с
@laravelcreative
@laravelcreative Жыл бұрын
Благодарю!)
@ebirdori9498
@ebirdori9498 7 ай бұрын
watch: { '$route'() { this.$nextTick(this.getAccessToken) } }, у меня на options API только так получилось
@biLLie_wiLLie
@biLLie_wiLLie 2 жыл бұрын
расскажите плиз как делать регистрацию по номеру телефона?
@ivlev98
@ivlev98 2 жыл бұрын
А по laravel passport будет курс?
@PopovAndrey
@PopovAndrey Жыл бұрын
В файле bootstrap.js строка 28. Ты конфигурируешь интерсептор.... В ситуации когда прилетают ошибки вида 422 (ответы неправильного заполнения форм). Они все появляются в этом блоке. Как их вообще обрабатывать на конкретной странице (не только логин)? Цель обработать 422 только на blog или comments... Видео получаются у тебя интересные и информативные!
@laravelcreative
@laravelcreative Жыл бұрын
Вопрос в том, зачем это делать только там? Просто можно тогда дописать условие, что если страница === блог или коммент, то... тут дописать:)
@Slavikns
@Slavikns 2 жыл бұрын
Здравствуйте, как во Vue получить объект User (имя и др. поля) , нужно посылать отдельный запрос axios, или как то правильнее есть? Спасибо!
@ruslan_nurgaleev
@ruslan_nurgaleev 2 жыл бұрын
тот же вопрос)
@bloody91122
@bloody91122 Жыл бұрын
Можно сделать отдельный get запрос в api, который будет возвращать auth()->user(), но правильнее будет перенаправлять на отдельный контроллер, который будет возвращать ресурс user
@Semen_aqw
@Semen_aqw 7 ай бұрын
Роутер " yor domain server / user "
@gamingplay5415
@gamingplay5415 8 ай бұрын
кто может готовый вариант скинуть ?
@FailedArchaeologist
@FailedArchaeologist 2 жыл бұрын
Здраствуйте, хотел спросить залил на хостинг захожу через логин или регистрацию, пытаюсь добавить илипосмотреть товар и сразу выкидует, на роутер логина, при этом пропадает и localStorage
@MrBloxa
@MrBloxa 7 ай бұрын
Привет, решили как-то проблему? Столкнулся с тем же просто.
@FailedArchaeologist
@FailedArchaeologist 7 ай бұрын
@@MrBloxa привет решил был, но это было так давно чт оя уже и не помню, что делал.
@MrBloxa
@MrBloxa 7 ай бұрын
Жаль. А то уже не знаю в чём причина. Самое бредовое, что работает на OpenServer и всё ок, но через docker-контейнеры "летит" к чертям.
@fairplay6113
@fairplay6113 2 жыл бұрын
А oauth2 можно как-то прикрутить?
@laravelcreative
@laravelcreative 2 жыл бұрын
Можно) Но в двух словах в комментарии это не объяснить) Все эти авторизации схожи друг с другом, два случая уже разобраны, я думаю не составит сложности поразбираться в этом) Просто мы так никогда к другим темам не дойдём)
@Nikolay-ruru
@Nikolay-ruru 2 жыл бұрын
Получается если удалить папку с контроллерами Auth и папку с вьюхами Auth, то /login работать не будет? Просит контроллер Controllers\Auth\LoginController
@laravelcreative
@laravelcreative 2 жыл бұрын
Да нативно всё работает, зачем их удалять вообще?)
@Nikolay-ruru
@Nikolay-ruru 2 жыл бұрын
@@laravelcreative по адресу /login пытается форма по умолчанию загрузиться, вот и думаю как это убрать
@ivlev98
@ivlev98 2 жыл бұрын
@@laravelcreative А если вместо laravel ui использовать laravel fortify, будет работать?
@antohagobet4451
@antohagobet4451 2 жыл бұрын
​@@Nikolay-ruru У меня такая же проблема. Получилось решить?
@deadBrod
@deadBrod 2 жыл бұрын
@@antohagobet4451 я не нашел способа лучше, чем удалить Auth::routes(); в web.php и написать свой контроллер авторизации/регистрации
@trvtrv3172
@trvtrv3172 2 жыл бұрын
Спасибо за урок. С меня дизлайк))
@gamingplay5415
@gamingplay5415 7 ай бұрын
axios.interceptors.response.use(null, err => { const error = { status: err.response?.status, original: err, validation: {}, message: null, }; switch (err.response?.status) { case 422: for (let field in err.response.data.errors) { error.validation[field] = err.response.data.errors[field][0]; } break; case 403: error.message = "You're not allowed to do that."; break; case 401: error.message = "Please re-login."; break; case 500: error.message = "Something went really bad. Sorry."; break; default: error.message = "Something went wrong. Please try again later."; } return Promise.reject(error); }); а как заставить работать это?) вместо моих сообщений я получаю Request failed with status code 403 ps с беком норм я сам тут отдавал abort(403)
@Cadregich
@Cadregich Жыл бұрын
Не смотря на то что тут в основном все хвалят автора, я хочу сказать что курс может ну очень сильно ввести в заблуждение. Предназначение санктума делится на выдачу jwt подобно tymon/jwt-auth и spa аутентификацию, но в курсе мы сначала делаем spa аутентификацию а потом с бухты барахты выдаём api, и нам не объясняют зачем, почему, какие цели преследуют обе эти фичи. Так же хранение jwt в localStorage устарело, сейчас используется в основном httpOnly cookie. Вообще структура того что тут происходит мне не понятно, пока сам не полез разбираться сидел в недоумении. Курс может быть хорошим если вы уже прочитали документацию и вам нужно просто посмотреть пример использования, имхо
@ramazanstudy570
@ramazanstudy570 11 ай бұрын
а есть курсы лучше ? может на английском ? и вообще где более правильную информацию брать ?
@Cadregich
@Cadregich 11 ай бұрын
@@ramazanstudy570 мэн, я просто высказал свою критику, я сам когда начинал изучать лару смотрел этот канал. Но в данном случае проще просто прочитать офф. документацию, она у них на русском, и расписана предельно понятно. Я так понял тебе хочется получать информацию именно в виде видео, это не плохо, но не выйдет всегда ограничиваться ими
@ramazanstudy570
@ramazanstudy570 11 ай бұрын
в целом, мне тоже нравятся курсы автора, коротко объясняет старается упрощать еще этот юмор интересный моментами есть определенные плюсы их не мало идеальных людей и курсов нет, но скажу свое мнение насчет чего хотелось бы еще | Автор курса, не доносит суть задачи, чтобы я как тот кто учится, понял суть проблемы в своей голове понял логику решения, а потом уже увидеть как это делается. Автор сам знает как решать задачи, и сразу приступает к решению " Такс, нам нужно создать контроллер, такой то компонет, то то то то". но зачем это нужно я не понимаю, до меня доходит суть в конце, когда он показал весь пазл. и часто вопросы в голове возникают: А зачем это? а почему так? а почему не так? к чему это всё? (ответы на эти вопросы, я получаю в конце и получается до конца я не понимаю зачем так делать надо было. а когда уже сам пытаюсь что то сделать, то понимаю что всё улетело из головы. потому что я не научился выстраивать логику решения той или иной проблемы шаг за шагом) допустим строим дом. Проблема: с чего начать строительства дома? (грубо говоря: сначала выровнять землю, выкопать для основания ямы, залить бетон, и построить основание, по основанию поднимать этаж за этажом) автор: значит начнем рыть рвы, потом заливаем бетон, потом тото тото, а это всё нужно делать, для того чтобы было основание, Потом делаем основание, и на нем строим этаж, а потом на этаже делаем это, а это нужно для этого но мне как новичку, который ни фига не знает как строится дом, с чего начинать итп, ни фига не понятно, почему именно с основания начинать нужно почему бы сверху вниз не начать строить дом почему бы сначала мебель не прикупить, а потом уже начать собирать окна, а потом залить основание хоть очевидные вопросы, но для новичка это цепочка логики вообще не очевидна он не поймет почему и зачем с этого начинать нужно так как у него нет в голово представления того как строить дом и он будет тупо за вами повторять, пока эта картина не выстраится но лучше сразу дать нам эту картину в начале то есть: значит, нам нужно построить дом, дом нужно начинать строить с основния, нужно залить хорошее основание, чтобы дом крепко стоял, чтобы по основанию поднимать этаж за этажем, а так делают, потому что работа идет легче что нужно сделать чтобы построить хорошее основание? для начала нужно вырыть ямы, залить их бетоном, это дает нам тото потом поставить то то и сделать то то, а это даст нам это в таком ключе, я начну понимать сам, что нужно делать, логику решения проблемы я пойму, а потом найти инструменты для решения не будет сложно автор одновременно пытается донести логику, научить пользоваться фреемворком, показать живой пример, а новичку всё одновременно переварить и потом разделить это смешанную информацию сложно Но при всём этом курсы очень хорошие чем у многих и этот минус никак не умоляет остальную огромную пользу его курсов
@Cadregich
@Cadregich 11 ай бұрын
@@ramazanstudy570 иди лучше код пиши
@ramazanstudy570
@ramazanstudy570 11 ай бұрын
@@Cadregich Ахах, Дело говорить, насчет код писать
Он улетел, но обещал вернуться...
00:30
ПРЕМИЯ ДАРВИНА
Рет қаралды 4,9 МЛН
Seja Gentil com os Pequenos Animais 😿
00:20
Los Wagners
Рет қаралды 61 МЛН
兔子姐姐最终逃走了吗?#小丑#兔子警官#家庭
00:58
小蚂蚁和小宇宙
Рет қаралды 13 МЛН
JWT авторизация. Основы JWT - механизма.
6:45
Хочу вАйти
Рет қаралды 13 М.
FastAPI JWT Tutorial | How to add User Authentication
20:27
Eric Roby
Рет қаралды 60 М.
I built the same app 10 times // Which JS Framework is best?
21:58
Fireship
Рет қаралды 2,5 МЛН
I built 10 web apps... with 10 different languages
14:23
Fireship
Рет қаралды 1,6 МЛН
What’s Up with Laravel? It’s Everywhere, and Here’s Why!
6:22
Он улетел, но обещал вернуться...
00:30
ПРЕМИЯ ДАРВИНА
Рет қаралды 4,9 МЛН