207 похожих чатов

Всем привет. Какие рекомендации касательно проверки авторизации? Имею ввиду, есть условно

страница:
/admin

Можно сделать клиентскую проверку и серверную.

В первой (клиент только):
if (!store.token) return redirect(loginPage)

А можно на стороне сервера:

if (! await store.httpAuth) return redirect...

Во втором случае мы шлем запрос на сервер если у юзера есть токен. Если его нет, ясное дело он не авторизован.

Но вот в чем суть вопроса.
В случае клиент проверки, мы можем быстро и без нагрузки на сервер сказать юзеру, что он лох и должен зайти в акк.
Но лох он только на бумаге. По факту. Никто не мешает клиенту добавить токен туда где он хранится (условно куки) и зайти на страницу.

В 90% случаев это ему ничего не даст. Но зачем ему знать какие страницы есть на сайте и получать к ним доступ в том числе хттп энтри

В случае сервера, мы его не пустим если он лох. При чем соврать он не сможет ибо api уже скажет лох он или нет.

Но тут, по сути, лишние запросы каждое посещение страницы или страниц где есть мидлварь на проверку.

Что генерит нагрузку. Особенно если клиентов много.

Вопросы.
Что по best practices?
Что есть из других вариантов, если они есть?
Как делали лично вы?

#Nuxt3

4 ответов

38 просмотров

Токен может иметь подпись как симметричным шифрованием так и ассиметричным. Для ассиметричного варианта клиент получает открытый ключ для проверки валидности содержимого токена. После этого использует инфу из токена - роль например

Мне кажется вы преувеличиваете с «генерит нагрузку если много клиентов». Если там какая-нибудь сессия из редиса, то не будет там особо никакой нагрузки. Бест практис это не пытаться сразу написать гугл или амазон Хотя кто знает, может у вас уже миллионы

Black_Yuzia-Yuzia Автор вопроса
Gennady Kh
Токен может иметь подпись как симметричным шифрова...

О, а где почитать за это? Ибо звучит как лучше и быстрее чем слать запрос на бэк

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта