Это может быть достигнуто несколькими способами, в зависимости от того, какой уровень разрешений требуется для приложения.
- Рекомендуется (через проверку разрешения _exists)
В таблице users
вашего приложения есть логический столбец с именем free_trial
. Этот флаг будет истинным изначально. В проверке разрешений вы можете использовать проверку _exists
, чтобы узнать, находится ли пользователь в бесплатной пробной версии или нет. Условие будет выглядеть примерно так:
{"_exists":{"_table":{"name":"users","schema":"public"},"_where":{"free_trial":{"_eq":true}}}}
Теперь вам нужно обновить столбец free_trial до false
после того, как они пересекают 30 дней. Это можно сделать с помощью мутации, которая запускается каждый день (как администратор роли) для проверки даты регистрации и обновления флага в бэкэнде.
В приложении Flutter вы можете перенаправить пользователей на страницу оплаты на основе этой флаг. После того, как вы заплатили пользователям, вы можете назначить им разные роли и разные проверки прав доступа для одного и того же.
На основе утверждений JWT:
Создайте роль с именем «free_trial» и создайте для нее JWT с доступом только к указанным c API. Вы можете определить разрешения, чтобы разрешить и запретить определенные операции в вашем приложении на основе этой роли.