страница:
/admin
Можно сделать клиентскую проверку и серверную.
В первой (клиент только):
if (!store.token) return redirect(loginPage)
А можно на стороне сервера:
if (! await store.httpAuth) return redirect...
Во втором случае мы шлем запрос на сервер если у юзера есть токен. Если его нет, ясное дело он не авторизован.
Но вот в чем суть вопроса.
В случае клиент проверки, мы можем быстро и без нагрузки на сервер сказать юзеру, что он лох и должен зайти в акк.
Но лох он только на бумаге. По факту. Никто не мешает клиенту добавить токен туда где он хранится (условно куки) и зайти на страницу.
В 90% случаев это ему ничего не даст. Но зачем ему знать какие страницы есть на сайте и получать к ним доступ в том числе хттп энтри
В случае сервера, мы его не пустим если он лох. При чем соврать он не сможет ибо api уже скажет лох он или нет.
Но тут, по сути, лишние запросы каждое посещение страницы или страниц где есть мидлварь на проверку.
Что генерит нагрузку. Особенно если клиентов много.
Вопросы.
Что по best practices?
Что есть из других вариантов, если они есть?
Как делали лично вы?
#Nuxt3
Токен может иметь подпись как симметричным шифрованием так и ассиметричным. Для ассиметричного варианта клиент получает открытый ключ для проверки валидности содержимого токена. После этого использует инфу из токена - роль например
Мне кажется вы преувеличиваете с «генерит нагрузку если много клиентов». Если там какая-нибудь сессия из редиса, то не будет там особо никакой нагрузки. Бест практис это не пытаться сразу написать гугл или амазон Хотя кто знает, может у вас уже миллионы
О, а где почитать за это? Ибо звучит как лучше и быстрее чем слать запрос на бэк
Ну, может так и есть
Обсуждают сегодня