Roman
https://github.com/qmlweb/qmlweb
да знаю я qmlweb, но это скорее эксперимент и костыль нежели серьёзный порт QML на Web
Egor
да знаю я qmlweb, но это скорее эксперимент и костыль нежели серьёзный порт QML на Web
ну уж извините, придется приспосабливаться к новой среде
Roman
может быть WASM предоставит возможность компилить Qt под браузер, поскольку QML (Qt Quick) это C++
Egor
ахахах)))
Yaroslav 🇺🇦
почему?)
Потому что всё должн быть едино
Yaroslav 🇺🇦
И наследовательность
Roman
И наследовательность
эээ, шта?)) WASM это ASM в виртуальной машине в браузере. C++ можно скомпилировать в WASM, а Qt это C++ библиотека
Andrey
Всем привет! Перед рендерингом компонента вызывается метод mountBefore(). Я сунул туда axios.post() в ответ на который возвращается статус авторизации юзера. Если авторизации нет, перебрасывает на /login. Проблема: ожидание ответа 300-600мс. За это время форма отрисовывается и я вижу её содержимое (хотя не должен). Судя по всему, аксиос отрабатывает асинхронно. Вопрос: правильно ли я делаю? И, если нет, какие умные слова гуглить на эту тему?
Denis
Перед каждым рендером чекаешь auth?
Andrey
Да
Denis
Да
Че посылаешь, токен?
Anonymous
В роутере делай эти задачи
Anonymous
Переброс на логин
Denis
В роутере делай эти задачи
Погоди. Не руби с плеча. Надо разобраться
Andrey
Этот метод в каждом компоненте у меня
Anonymous
Тут кажется видео где-то есть про JWT кстати
Anonymous
Я ссылку не сохранил
Yaroslav 🇺🇦
видео про jwt тут легенда!
Andrey
В компонентах beforeMount(){ window.isAuth(); } А в файле functions.js метод, где и происходит проверка: window.isAuth = () => { axios.post('/api/users.check') .catch(error => { router.push({name: 'login'}); }); }
Anonymous
видео про jwt тут легенда!
Хорошее? Я ещё не смотрел
Rafael 🌵
Исполбзуй либо v-if, либо routeBeforeEnter
Anonymous
Это Рик Джеймс? Крутая музыка кстати
Anonymous
Denis
@Helldar
Denis
Че посылаешь, токен?
Denis
Или в хедере бирер?
Andrey
Туда? Нет. Просто пост запрос с пустым телом. Весь проект в рамках одного домена. Типа личный кабинет
Andrey
Авторизация стандартная
Denis
А как аутентифицируешь?
Denis
Че за стандартная?
Anonymous
Сессии наверное
Andrey
Проект на ларке.
Andrey
Без oauth
Andrey
На бэке проверка: If(Auth::check()){ Return response('OK'); } Return response('error', 401);
Denis
А запрос с сессией.
Denis
И лара чекает там токен из сессии
Denis
Ну давай подумаем... Это ваще норм?
Denis
Andrey
До компа доберусь, точнее скину. С мобилы сложно нормально писать.
Denis
Я так делал. Только я XHR слал запрос с токеном
Andrey
То есть у тебя axios не XMLHTTPRequest посылает?
В коде есть такой участок: window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; window.axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'; window.axios.defaults.headers.common['X-CSRF-TOKEN'] = document.head.querySelector('meta[name="csrf-token"]'); Но вопрос вовсе не в авторизации, а в том, как НЕ показывать пользователю открываемую страницу ДО того, как вернется ответ о статусе авторизации? Вопросы про отправку токенов, извиняюсь, совсем с другой темы.
Dmitry
Он его сам прикрыл. Инфа в его посте, как я написал выше
Что за канал то по курсам? Хотел досмотреть стрим по Flow, а тут облом :/
Stanislav
30/30 https://custom-elements-everywhere.com/
Andrey
А зачем ты проверяешь перед каждым компонентом? Ты проверяй перед каждым запросом данных с сервера.
Пример: есть страница, на которой одно единственное поле ввода (назовем это "поиск"). Вбивая в строку поиска текст происходят запросы по [keyup, mouseup]. А при загрузке (рендеринге) страницы не выполняется ни единого запроса. Страницу эту должен видеть только авторизованный пользователь. То бишь, без авторизации она даже мельком не должна показываться кому-либо. В этом-то и проблема.
Denis
Проблема решается с v-if. Тебе же сказали. Вот как запрос пошел, сразу в нем и проверяй аутентификацию. Маусап насмешил, красава)))
Denis
Событие отрыва мыши от стола
Andrey
Чего насмешил? Юзер может скопировать где-то строку и вставить ее через "правую кнопку мыши", тогда событие "keyup" ни в жизнь не вызовется. ЗЫ: Код роутов у меня такой: https://pastebin.com/nHbbs1TV
Denis
https://codepen.io/denis_efremov/pen/eEMmoN
ℝei
это вообще законно делать все через window. ...?
ℝei
Надо шерифа спросить
Шериф уже говорил что в прототипы лучше не срать)
Andrey
Проблема решается с v-if. Тебе же сказали. Вот как запрос пошел, сразу в нем и проверяй аутентификацию. Маусап насмешил, красава)))
Ну, допустим, храню переменную в данных: isAuth: false Отправляю запрос на сервер в beforeMount(). Судя по всему, запрос асинхронный. В это время основная форма отрисовывается, но не показывается юзеру. Окей. Логика понятна. Но это же, имхо, очень костыльный и дурнопахнущий код. На мой взгляд, форма вообще не должна даже начинать отрисовываться пока не вернется статус авторизации. Или Vue не предполагает такой механики поведения?
Andrey
это вообще законно делать все через window. ...?
Ну, у меня некоторые участки кода используются в разных местах и это единственный найденный мной выход как их заюзать.
Andrey
вынести api в отдельный js и делать import myApi from 'path/to/api.js'
Логику понял. Но если просто написать код в этом файле - он при импорте работать не будет. Или я ошибаюсь? Не надо ли его оформлять в качестве компонента или прототипа? У меня фронт есть слабая стороная, могу многого не знать.
Denis
this.$root.isAuth
Denis
export default function (app) {}
Denis
import api from './api' const apiInstance = api(this.$root) На крайняк
ℝei
export default function (app) {}
exports.funcName = () => { }
Andrey
this.$root.isAuth
А обращение к элементу через родителя нормально ли? Когда-то писал нечто вроде https://github.com/andrey-helldar/vk-music/blob/master/resources/assets/js/components/index.vue#L63 https://github.com/andrey-helldar/vk-music/blob/master/resources/assets/js/components/layouts/app.vue#L108-L110 И, непомню кто, таких пенделей за говнокод отвесил...
Denis
Ну isAuth же епта! Он глобален. Ты его в бефорМаунт() чекать будешь.
Denis
Ну можешь по пропсам сливать
Nikita
30/30 https://custom-elements-everywhere.com/
Всегда можно найти повод обосрать реакт.
Nikita
Мне дали посмотреть приложения тестовое на реакте. Я плевался. И забыл как страшный сон.