Я начал разрабатывать RESTful API, и я думаю о том, как обрабатывать аутентификацию. Я хочу использовать какой-то токен аутентификации, но я не могу использовать OAuth o аналогичных инфраструктур, поэтому я должен сам справиться с этим.
Одним из требований к этому API является то, что он должен иметь хорошую производительность, достаточную для обработки большого объема запросов до того, как потребуется масштабирование; моя забота заключается в том, как сделать по каждому запросу время, необходимое для проверки токена (целостность, срок действия, IP-адрес и т.д.), насколько это возможно.
Я предполагаю, что токен должен иметь какой-то хэш, а не зашифрованную строку, содержащую пользовательскую информацию, потому что время дешифрования будет тяжелым.
Я читал, что я могу хранить токены в хэш-таблице в памяти, где ключ является токеном, а значение - это информация пользователя, необходимая для обработки запроса, но как я могу сделать эту работу в кластерной среде, где будет хеш-таблица на каждом "node"?
Должен ли я помещать токены в таблицу БД каждый раз ударять БД и вручную обрабатывать сохранение просроченных билетов?
Возможно, это не так важно для вопроса, но я использую Spring MVC для RESTfull API.
Спасибо заранее.