Найти тему
10 подписчиков

Давно знал про JWT, но в своих проектиках всё не находилось, куда их хорошо было бы воткнуть. А вот для раздавания картинок доступных только после авторизации идеально подходит.


Когда пользователь авторизуется, выписываем ему токен с «имеет доступ к таким-то бакетам до такого-то времени» и он ходит с ним в картинки. Где нужно только проверить подпись, id бакета и не истёк ли он. И ничего хранить/ходить в базу за проверкой сессии не нужно.

Единственное что нужно это ещё логику на клиенте дописать, чтобы рефрешило токен перед тем как он истечёт.

Хотя не, не единственное. Если передавать его в урле параметром, то браузерный кеш будет слетать (ну или TTL почти вечный делать, но это такое себе). А в заголовки его не запихнуть, если использовать <img>.

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

... опять что-то сложно получилось :(
1 минута