BShaffer OAuth2 Server: разрешено ли изменять область действия токена в базе данных после его создания?
Сценарий: у меня есть приложение, работающее с бэкэндом PHP с сервером Ohauth2 от BShaffer. Когда пользователь входит в систему, я могу только проверить квитанцию о покупке в приложении, которая уже была загружена на сервер, чтобы увидеть, "является ли он премиальным" или нет. Если я вижу, что подписка в квитанции истекла, мне нужно получить более новую. Это должно происходить как можно реже, так как пользователь всегда должен повторно вводить свой пароль itunes (на iOS), чтобы я мог получить квитанцию.
Мой план будет:
- Войдите, создайте токен OAuth2 (Носитель, хранится в базе данных). Проверьте, есть ли квитанция. Если да, проверьте, есть ли у него просроченная подписка. В этом случае добавьте область действия SUBSCRIPTION_EXPIRED. В некоторых других случаях, если все работает хорошо, добавьте область действия PREMIUM.
- Если клиент узнает через бэкэнд, что у него есть область действия SUBSCRIPTION_EXPIRED, он получает более новую версию квитанции и загружает ее.
- Теперь сервер проверяет новую квитанцию и должен / мог удалить область SUBSCRIPTION_EXPIRED и заменить ее ничем или PREMIUM, независимо от того, что мне даст результат проверки квитанции. На этом этапе access_token уже известен клиенту и хранится там.
- Любые дальнейшие запросы к серверу с данным токеном доступа будут использовать область; при новом входе в систему я использую новую квитанцию и должен быть в состоянии немедленно принять решение.