Combot
combot.org/chat/-1001024737789
Nikita
/stat@combot
Combot
combot.org/chat/-1001024737789
Anonymous
Недавно начал изучать angularjs,для чего бывает полезно свои директивы писать?
Anonymous
Когда нельзя обойтись без своих директив?
Viktor
Примерно так. Когда нужно взаимодействие с DOM, подключение чужих скриптов написанных например на jQuery, создание собственных элементов управления, внесение изменений в логику стандартных.
Viktor
Я бы посоветовал просто разобраться и написать какую-то свою первую директиву, можно на примерах из доки на оф сайте ангуляр. Сами потом поймете - когда это может понадобиться.
Viktor
Только запомните - что с DOM абы где писать - считается говнокодом
Viktor
только в директивах
Anonymous
Спасибо большое
Anonymous
Может у кого есть хороший пример кастомной валидации форм?
Anonymous
Что то вроде jquery validate
Anonymous
А то в нете много примеров,так как я новичек,не знаю что лучше выбрать
Anonymous
Чтоб кастомные ошибки высвечивало
Дима
только в директивах
И компонентах
Anonymous
Где лучше хранить токен?в куках или в локалстораге?
Serhii
Куки
Anonymous
Почему именно в куках?
Serhii
Это безопаснее со стороны сесурити
Anonymous
В локалстораге больше места
Anonymous
И чем это безопаснее?
Anonymous
Там 5 мб места
Serhii
Я попутал
Serhii
http://stackoverflow.com/questions/3220660/local-storage-vs-cookies
Дима
ПЯТЬ МЕГАБАЙТ ТОКЕНОВ? 😱😱
Дима
Извините
Serhii
Local storage is more secure
Serhii
Но чем я не понимаю
Serhii
В куков есть лайвтайм
Serhii
В стореджа нету
Serhii
The data is stored for longer duration and remains in the browser unless user delete it explicitly, it remains even after computer restart
Serhii
Сомневаюсь что для токенов это хорошо
Serhii
Local storage data is not sent to the server on every request (HTTP header) as it is purely at the client side
Serhii
Так что для токенов таки куки
Sergey
если бы это были http-only куки то чисто технически да, париться надо теперь только о CSRF
Sergey
НО, например мы юзаем JWT
Sergey
и как бы не давать клиенту возможность читать пэйлоад как-то глупо
Sergey
потому я лично засовываю токен в локал сторадж и не парюсь
Sergey
тем более если у тебя есть refresh токены, не стоит их пхать в куки вообще (хотя тут можно конечно поспорить)
Sergey
ну то есть - смотря какой токен мы храним, ибо у JWT тоже есть лайфтайм
Serhii
А куда, если ты хотя бы знаешь и поставишь им время жизни
Serhii
Если локалстор - прийдется на клиенте ещё писать логику обновления токенов если приходят
Sergey
короч куки = бояться CSRF, локал сторадж - бояться XSS
Serhii
А так кука сама повесится через время
Serhii
Ну эт да
Sergey
А так кука сама повесится через время
а какая мне разница если токен выдается на 5 минут?
Sergey
потом будь добр сходи за новой парой рефреш + jwt
Sergey
не хранить же рефреш токен в куках? у них срок жизни подольше то будет
Sergey
они и по сети должны ходить только один раз
Anonymous
Так кто что использует?
Sergey
в контексте SPA - локал сторадж + JWT + рефреш токены
Sergey
если что попроще - http-only куки
Anonymous
Как я понял jwt шифрует токены?
Sergey
нет, jwt их подписывает
Sergey
то есть у тебя тупо json в base64 + подпись
Anonymous
Спасибо
Anonymous
Буду читать про это
Sergey
jwt.io
Sergey
самый наглядный ресурс
Anonymous
Так я смысл jwt не понял, если раньше зная токен какого нибудь чувака,мог зайти под его именем на его страницу. И как я понял я тоже самое могу сделать если у меня будет jwt маркер
Anonymous
Смысл шифрования токена тогда какой?
Sergey
смысл в том что я не храню токен на сервере
Sergey
ну то есть тебе сервак когда-то (минут 5 назад) дал токен погонять систему минут 10
Sergey
в токене у тебя будет зашиты айдишки юзера, что ему можно и чего нельзя например
Sergey
может аватарка еще
Sergey
что бы лишний запрос не делать.... когда токен приходит на сервер, я вместо того что бы лазать в базу данных за юзером таким и смотреть что он может а чего нет, проверяю подпись и если все ок - разрешаю ему делать что надо
Sergey
таким образом я могу до бесконечности масштабировать систему на сервере
Sergey
минус такого подхода - у JWT токена должна быть очень маленькое время жизни, в зависимости от того что может пойти не так. Например если у нас есть блокировка юзеров, даже если я тебя заблочу а у тебя уже есть токен валидный - то ты все еще сможешь пользоваться апишкой пока токен не истечет
Sergey
то есть если тебе прям критично что бы на каждый чих производилась инвалидация сессий авторизации, ну тогда тебе JWT не подходит
Sergey
но в подавляющем болшинстве систем хватит того что ты будешь выдавать токен минут на 5
Sergey
ничего плохого обычно за 5 минут не случается
Sergey
ну и в целом есть доп решения вроде поставить мидлвэрю вокруг всех эндпоинтов API которые будут инвалидировать чуть что сессии... но это тип... такой редкий кейс
Anonymous
Это получается если я шлю обычный запрос на сервер и отправляю в заголовке мой jwt маркер,то я думаю на сервере должен быть какой-то сервис,который в зависимости от моей подписи в токене дает мне определенные права
Anonymous
Правильно я понял?
Anonymous
Ты работаешь на asp net mvc?
Sergey
> который в зависимости от моей подписи в токене дает мне определенные права не, определенные права у тебя уже вшиты в json токена (payload), а подпись лишь верифицирует что ты токен не сам сгенерил а тебе его выдал сервак.
Anonymous
Еще вопрос.если у нас вся инфа о пользователе на клиенте зашифрована, как тогда на клиенте узнать что я являюсь админом?
Anonymous
Придумал
Sergey
она не зашифрована