2016-10-11 3 views
1

Для нашего API Laravel 5.3 я хочу удалить необходимость в токенах CSRF, поскольку все обрабатывается с помощью OAuth2 и JWT.Остановка проверки CSRF для поддоменов

В настоящее время API работает на подобласти: api.example.com

Я попытался это, но он по-прежнему просит CSRF токены:

class VerifyCsrfToken extends BaseVerifier 
{ 
    protected $except = [ 
     'api.*' 
    ]; 
} 

Я хотел бы также, чтобы иметь возможность отключить защиту CSRF, когда я делая случайные тесты маршрута в основном приложении, которое находится на app.example.dev, но добавление 'app.*' в $except также не работает.

Возможно ли это?

ответ

1

Вы можете переписать метод shouldPassThrough в BaseVerifier классе, где в ней будет поддерживать субдомны в $except, такие как api.yourdomain.com

/** 
* Determine if the request has a URI that should pass through CSRF verification. 
* 
* @param \Illuminate\Http\Request $request 
* @return bool 
*/ 
protected function shouldPassThrough($request) 
{ 
    foreach ($this->except as $except) { 
     if (Str::is($except, $request->url())) { 
      // break out of CSRF check 
      return true; 
     } 
    } 

    return false; 
} 
+0

Если не 'вернуть false' части быть вне цикла Еогеаспа? – eComEvo

+0

Хорошее место @eComEvo - ответ обновлен! – Ryan

Смежные вопросы