Я использую аутентификацию JWT для своей группы промежуточного программного обеспечения laravel api.Вот моя конфигурация маршрута:
Route::group(['middleware' => ['api']], function() {
Route::post('login', 'AuthController@login');
Route::post('test', 'AuthController@test');
});
Этот код работает хорошо, и у меня не может быть несанкционированного доступа к test
методу моего класса AuthController:
class AuthController extends Controller
{
public function __construct()
{
$this->middleware(['jwt.auth'])->except('login');
}
public function login()
{
//...
}
public function test()
{
//...
}
}
, но когда я изменяюсьКонфигурация маршрута для динамического определения имени метода контроллера (как вы видите в следующем фрагменте кода), аутентификация больше не работает, и я могу получить доступ к методу test
без маркера носителя!
Route::group(['middleware' => ['api']], function() {
Route::post('/{controller}/{method}', function ($controller, $method) {
$controllerClass = 'App\\Http\\Controllers\\'.$controller.'Controller';
if(method_exists($controllerClass, $method))
{
$controller = App::make($controllerClass);
return $controller->callAction($method, array());
}
return abort(404);
});
});
Есть идеи?