Делаю авторизацию на сайте. Решил использовать принцип JWT основанную на токенах. В основах разобрался, но один момент понять не могу.
Принцип работы:
1) Ввод логина и пароля
2) Проверка в базе пользователя с указанным логином и паролем
3) Создание JWT токена
Работа с сайтом
1) Проверка на валидность
2) Вывод информации в зависимости от проверки
Для аякс запросов:
Сохраняем в localstorage и при отправке добавляем токен в заголовок.
Как быть с обычными переходами на сайте. Т.е. раньше я хранил авторизацию в PHP SESSION, если есть $_SESSION["userid"]=1, значит пользователь с ID=1 авторизован? а как сейчас делать? Ведь у сессии свой срок службы, у токена свой? Подскажите алгоритм работы, не хранить же токен в COOKIES и оттуда вытаскивать для проверки? как с точки зрения безопасности сделать этот момент?
Вы можите хранить userId прямо в токене, ну и это все должно быть подписано, сессий вообще не нужно. Получать userId из токена, для этого есть готовые решения. А как Вы будете передавать токен(куки, хэдеры и пр) это Ваше личное дело.