Подробнее о параметре state можно узнать из этого ответа .
Где генерировать состояние и где хранить, будет зависеть от характера вашего приложения.Независимо от типа клиента клиент должен проверить параметр состояния в ответе кода авторизации.
Для одностраничного приложения, которое не содержит бэкэнда, необходимо будет сгенерировать и сохранить состояние в самом браузере.,После получения ответа необходимо сравнить значение состояния.
Для собственного приложения (например, - Мобильное приложение) состояние может быть сохранено в памяти приложения.Его можно добавить в запрос авторизации.Когда приходит ответ, его можно проверить из памяти
При желании приложения состояние может быть сохранено в бэкэнде (например: - сервер).Это можно считать более безопасным (по сравнению с SPA), учитывая, что никто не может перехватить / получить значение, кроме как из самого запроса.Как только происходит перенаправление, бэкэнд может проверить параметры ответа.Более того, его можно использовать для корреляции сеанса клиента.
Кроме того, кража значения состояния полезна только для стороны, которая пытается осуществить CSRF-атаку.Но будьте внимательны, чтобы генерировать государственные ценности, которые невозможно угадать.Дальнейшее чтение для хранения - 3.6.Параметр "состояние"