Перед ответами на данные вопросы сразу скажу, что я не архитектор, и разработчиком с 10+ летним стажем я не являюсь, к тому же ещё и бекендер в первую очередь, так что ниже, возможно, я несовсем прав.
при использовании групп пользователей (ролей: админ, модератор, юзер) их передавать в токене
DaBags, нет. Если ты подобную инфу будешь хранить в токене, то ты ей либо не будешь пользоваться вообще, либо она рано или поздно окажется устаревшей. И второе принесёт тебе много проблем, когда один из пользователей или не дай бог модератор начнёт буйствовать, ты его забанишь, но он по прежнему будет творить дичь, поскольку все проверки закончатся на токене и до проверки в базе, где будет висеть инфа о бане, дело не дойдёт. В итоге до тех пор, пока жвт жив, у человека будет полный доступ к сайту.
стоит ли их отдельно куда-либо записывать (в тот же localstorage) или оставлять в токене и декодить каждый раз
Вот тут уже хз как лучше, поскольку это касается исключительно фронта, но в любом случае не в токене. Прогугли данный вопрос на лучшие практики.
DaBags,
1. Люди, которые любят копаться в коде, над минимальной защитой максимум посмеются. Что им помешает вырезать эту проверку с фронта?
2. И каким образом юзер может увидеть дополнительную инфу, к которой у него нет доступа? Только если сервер дырявый и не авторизирует пользователя при каждом запросе.
3. Ещё раз, любая проверка креденшилов на фронте, это защита на уровне этой калитки:
DaBags, во-первых, каким образом пользователь вообще сможет увидеть админскую панель, если не будет копаться в коде? Такого, естественно, допускать нельзя, но не из-за "безопасности", а из-за пользовательского опыта, который от некачественного продукта ухудшается. То есть именно обычный пользователь увидеть админку не должен.
Во-вторых, увидел пользователь админку без возможности её воспользоваться и что дальше? Как это повлияет на безопасность?
В-третьих, каким образом ты вообще собрался полноценно валидировать токен на фронте? А точнее каким образом ты собрался это делать безопасно? И, главное, зачем? Какой в этом вообще плюс? Даже если бы это было безопасно, это двойная работа, двойная имплементация одного и того же функционала.
Помимо того, что в ответах написали, начни использовать eslint и prettier, чтобы не учиться ими пользоваться на работе (да и скорее всего плюсик себе заработаешь, если твой гитхаб смотреть будут).
А так же начни писать юнит тесты (на jest, к примеру).
И фреймворк, естественно (react / vue / angular).
Ты из него верстальщика сделать хочешь? Фронт ─ это в первую очередь функционал. Я не говорю, что не надо уметь делать адаптивную вёрстку, но такой сильный упор на неё делать, будучи фронтом, как-то странно.
Senseich, если срабатывает, но со второго раза, то, насколько я вижу, при первом клике на wff_action_map_button_conatiner эвент не висит. Вешается он как раз после первого клика, когда срабатывает эвент на wff_widget_FW6A9D41403F21F4E2.
Senseich, нет, это ты что-то не так сделал. Эвент должен висеть на том же элементе, на котором "ненужный" эвент и иметь тот же тип.
Данный способ не сработает только в одном случае: если эвенты, которые вешает сторонний скрипт, третьим аргументом тоже имеют true, но исходя из фрагмента кода, это не тот случай. Да и лично я ещё ни разу не встречал на практике, чтобы где-то эвенты с true вешались.
Первый же результат по запросу "js Как сделать отступ первой строки в абзаце?": htmlbook.ru/css/text-indent
Было очень сложно, целых 10 секунд на поиски потратил.
DaBags, нет. Если ты подобную инфу будешь хранить в токене, то ты ей либо не будешь пользоваться вообще, либо она рано или поздно окажется устаревшей. И второе принесёт тебе много проблем, когда один из пользователей или не дай бог модератор начнёт буйствовать, ты его забанишь, но он по прежнему будет творить дичь, поскольку все проверки закончатся на токене и до проверки в базе, где будет висеть инфа о бане, дело не дойдёт. В итоге до тех пор, пока жвт жив, у человека будет полный доступ к сайту.
Вот тут уже хз как лучше, поскольку это касается исключительно фронта, но в любом случае не в токене. Прогугли данный вопрос на лучшие практики.