Для ограничения доступа к странице только через мобильное приложение в Yii, можно использовать различные методы аутентификации и авторизации.
Вариант 1: Использование HTTP заголовка
Вы можете воспользоваться возможностями Yii для чтения HTTP заголовков и проверки значения определенного заголовка, который будет указывать на то, что запрос был отправлен из мобильного приложения. Для этого можно воспользоваться событием beforeAction
в контроллере Yii, которое будет выполнять проверку перед выполнением требуемого действия.
Например, можно добавить следующий код в контроллер:
public function beforeAction($action) { if (!$this->isMobileAppRequest()) { throw new yiiwebForbiddenHttpException('Доступ запрещен'); } return parent::beforeAction($action); } protected function isMobileAppRequest() { $userAgent = Yii::$app->request->getUserAgent(); // Здесь необходимо проверить значение HTTP заголовка, которое идентифицирует ваше мобильное приложение return /* Проверка значения заголовка */; }
Вариант 2: Использование токена авторизации
Вы можете использовать токен авторизации для определения, что запрос был отправлен из мобильного приложения. При каждом запросе из мобильного приложения должен быть передан токен авторизации в заголовке или параметре запроса. Затем, в контроллере, вы можете выполнить проверку наличия и валидности токена.
Например, вы можете добавить следующий код в контроллер:
public function beforeAction($action) { if (!$this->isMobileAppRequest()) { throw new yiiwebForbiddenHttpException('Доступ запрещен'); } return parent::beforeAction($action); } protected function isMobileAppRequest() { $authToken = Yii::$app->request->getHeaders()->get('Authorization'); // Здесь необходимо проверить валидность токена авторизации и его соответствие вашему мобильному приложению return /* Проверка валидности токена */; }
В обоих вариантах вам необходимо расширить код в соответствии с вашими требованиями и спецификацией вашего мобильного приложения. Важно учитывать, что эти методы не являются абсолютно надежными и могут быть обмануты, поэтому важно принять дополнительные меры для обеспечения безопасности.