После преодоления различных подходов, мы нашли решение, объясненное ниже:
- Мы сохраняем токен (зашифрованный) в куки в запросе на вход, и для каждого последующего запроса этот повар ie проверяется.
- Проблема заключалась в том, что если кто-то заменил токен в cook ie другим действительным токеном, поскольку файлы cookie поддерживаются браузером клиента.
Решение: -> Хотя значения токена были зашифрованы, он представлял только одно значение, поэтому, если одно заменит все зашифрованное значение другим действительным зашифрованным значением, его можно взломать.
Итак, чтобы решить эту проблему, мы добавили еще одного повара ie, представляющего собой комбинацию нескольких значений.
например
Cook ie 1 -> зашифрованный токен
Cook ie 2 -> Зашифрованный объект, содержащий информацию, такую как имя пользователя + некоторые другие детали контекста пользователя + токен
Так что в случае Cook ie 1 было легко заменить другое зашифрованное значение, поскольку оно представляло только один токен, хотя он был зашифрован ed.
Но в случае Cook ie 2 он содержал объект с несколькими значениями, поэтому только значение токена не может быть изменено, зашифровано и возвращено в тот же самый Cook ie.
Перед аутентификацией. Мы делаем дешифрование целого повара ie 2, извлекаем из него часть токена и проверяем его часть против повара ie 1.
Это решило нашу проблему !!
Спасибо всем за ваше время и руководство.