Yii2 AccessControl для действий, к которым должен обращаться определенный веб-сайт

У меня есть серверный проект на моем сервере ssl, как ssl.mybackend.comсо следующим:

class FormController extends Controller
{
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'actions' => ['index', 'delete', 'view', 'create'],
'allow' => true,
'roles' => ['@'], //only authorized users
],
[
'actions'=> ['create-order'],
'allow'=>true   //change all users to "myfrontend.com"]
],
],

];
}

Мне нужно предоставить доступ к create-order действие только на мой веб-сайт.
Я не уверен, возможно ли это сделать AccessControl и ценим, если вы могли бы посоветовать другие решения.

1

Решение

Если вы хотите использовать ajax-вызовы из внешнего интерфейса в другом домене, вы должны использовать corsFilter вместо. Пример из документации:

public function behaviors()
{
return [
'corsFilter' => [
'class' => \yii\filters\Cors::className(),
'cors' => [
// restrict access to
'Origin' => ['http://www.myserver.com', 'https://www.myserver.com'],
'Access-Control-Request-Method' => ['POST', 'PUT'],
// Allow only POST and PUT methods
'Access-Control-Request-Headers' => ['X-Wsse'],
// Allow only headers 'X-Wsse'
'Access-Control-Allow-Credentials' => true,
// Allow OPTIONS caching
'Access-Control-Max-Age' => 3600,
// Allow the X-Pagination-Current-Page header to be exposed to the browser.
'Access-Control-Expose-Headers' => ['X-Pagination-Current-Page'],
],

],
];
}

Совместное использование ресурсов в Yii2

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]