Default
@Tchernyavsky ^^^
Нене, не того зовёшь
アレクサンダー・バキマトフ
сорян)
Nikita
Нене, не того зовёшь
о, тебя лишили админки?
Default
@sovasergey выдадим господам РО?
Default
о, тебя лишили админки?
Нет, но вы ж меня ВАХТЁРОМ назовёте, если я десяток человек забаню за раз
Nikita
Нет, но вы ж меня ВАХТЁРОМ назовёте, если я десяток человек забаню за раз
нефигасе, кто это вы, не надо все 8к человек под одну гребенку
Default
@Tchernyavsky ну вот зачем ты просто так удалил? Как им теперь через бота РО выдать :(
Бензопила Дружба
Извиняюсь конечно, но что понимать под оскорбительным ником? Если ты им оскорбляет самого себя считается ли это? (Впервые тут)
Юрий
привет, как должна выглядить правильно авторизация JWT? человек логинеться, приходит с бэка информация о нем и токены, добавляются в локал сторэдж, в приват роуте проверяется фукнция: export const isAuth = () => { return !!localStorage.getItem("admin"); }; то допускается к приват роутингу, но я так понимаю, так делать не правильно и правильно допускать к роутингу по значение в сторе, которые должно быть: true/false, но тут вопрос, правильно ли будет, если в приват роутинге будет проверяться функция которая проверяет локалсторэдж, а если данные есть, то вызывать диспатч и менять в редаксе значение на true и по нему уже ориентироваться?
Юрий
не храни токены в локалсторедже - это небезопасно
но вопрос ведь не где держать его, а как правильно проверять) ведь данные могут быть кривые в локалсторадж, и допустит к приват роутингу
Anonymous
Привет, посоветуйте альтернативу redux
Никита Суханов
Гуддей. Нет новичков, желающих развиваться вместе?
🤴👷‍♂️🦸‍♂️🧚‍♀️
Roman
Похоливарим? Чем же?
э... ну как на счет того, что локалсторадж доступен для любого скрипта на странице?
Anonymous
mobx
он хранит/управляет состоянием?
Dauren
да
Maksim
И что дальше?
дальше ничего хорошего очевидно )
Roman
И что дальше?
любой скрипт на странице может прочесть токен и делать запросы от твоего имени
Maxim
э... ну как на счет того, что локалсторадж доступен для любого скрипта на странице?
Давайте так: какой реальный кейс XSS-атаки в реакт-приложении?
Dmitriy
любой скрипт на странице может прочесть токен и делать запросы от твоего имени
Чем куки отличаются? Скрипт так же может отправлять запросы
Maxim
I did not get that
https://t.me/reatom_ru https://github.com/artalar/reatom
🦜
Привет, посоветуйте альтернативу redux
Effector.js https://github.com/zerobias/effector
Eddie
Всем привет, вопрос у меня короткий: Ваше мнение сколько лет еще проживет PHP ?
Anonymous
👍
Юрий
локалсторадж это плохо, а как правильно авторазация сделать - ответ не услышать, ясн
Юрий
выше написано же, куки
при чем здесь куки, если важен как именно проверять и пускать на приват роут или нет
Roman
при чем здесь куки, если важен как именно проверять и пускать на приват роут или нет
это не решается чисто на фронте - всегда могут "подставить нужное". надо проверять на беке
Denis
Тогда локалсторейдж. )))
а как ты на сервере со своим локалсторейджем проверять будешь?
Юрий
запросить у сервера права очевидно
ты залогинелся, у тебя есть токены в сторадж, ты делаешь новый запрос на авторацию? че за бред?
Denis
По токену.
по какому токену? у сервака нет доступа к твоему лс
Roman
по какому токену? у сервака нет доступа к твоему лс
фронт-приложение не может хранить ничего секретного - все можно расковырять пускай пользователя на все роуты, но на закрытых роутах от сервера будет приходить 403 - и ты будешь показывать ошибку
Maxim
по какому токену? у сервака нет доступа к твоему лс
Вы посылаете токен с каждым запросом к API.
Roman
Alexey
авторизуешься ты один раз в админку куда-нибудь, а токен летакет каждый раз к бэку и каждый раз он проверяет его валидность
Юрий
авторизация и аутентификация - разные вещи
ты зашел на приватный роут, обновляешь страницу сразу, у тебя идет запрос с токенами на бэк, он дает ответ, меняется в сторе false на true и потом загружается компонент?
Alexey
Roman
ты зашел на приватный роут, обновляешь страницу сразу, у тебя идет запрос с токенами на бэк, он дает ответ, меняется в сторе false на true и потом загружается компонент?
зачем тебе что-то менять. у тебя что сам роут секретный? у тебя "информация по роуту" секретная. заходишь на приватный роут, отправляешь запрос за данными на бек, бек грит "403 хер тебе", ты этот хер и показываешь пользователю вместо контента
Alexey
ну или как выше предложили
Юрий
Юрий
такой сейчас компонент по приват роутингу, я так понимаю он не верно написан?
Alexey
это и так есть, у меня написан интерсептор, который в хедер кладет мой токен
твой код вообще не должен знать про это в идеале сервер устанавливает куки тебе
Denis
Вы посылаете токен с каждым запросом к API.
так а как вы достанете токен этот из лс если ну нету еще доступов к методам сторейджа, точнее методы есть, но реакт не работает еще в браузере на момент первого запроса
Юрий
получается должен быть еще один метод на бэкенде который будет дергаться только ради того, что бы проверить авторизирован юзер или нет?
Denis
Так это же SPA, вы отдаете всегда один и тот же html и бандл.
пока спа не прогрузилось, при первом переходе, нет еще реакта в браузере, нет фронта в принципе, но запрос на серв уже улетел
Denis
https://developer.mozilla.org/ru/docs/Web/HTTP/%D0%9A%D1%83%D0%BA%D0%B8
спасибо капитан, я про это и пытаюсь человеку сказать
Юрий
не пойму разницу если честно, сейчас каждый раз в хедере отправляется токен, если при запросе пришло 401 или чет другое, выкидывает на авторизацию, если все ок - пускает на приват роутинг
Nikita
oAuth по телеграму доступен в реакте? мож есть что готовое, линк, линк.
𝖃𝖊𝖓
Народ, осваиваю хуки, переезжаю с классов, и возник такой вопрос const [state, setState] = useState({a: 1, b: 2}); если при таком вызове все поля нового объекта будут совпадать, компонент все равно перерендерится? setState(currentState => { a: 1, b: 2 });
Maxim
спасибо капитан, я про это и пытаюсь человеку сказать
Не совсем понимаю, что именно вы имеете в виду. Оба подхода (ls и cookies) имеют право на существование, оба используются в продакшене, у каждого есть свои кейсы для применения.
𝖃𝖊𝖓
а хуки то где
поправил. и setState вызывается внутри useEffect
Denis
поправил. и setState вызывается внутри useEffect
Только не нужно колбек передавать в сетстейт
𝖃𝖊𝖓
Только не нужно колбек передавать в сетстейт
мне нужно предыдущий стейт читать
Alexey
мне нужно предыдущий стейт читать
он у тебя state называется