Я собрал остальные API с помощью laravel 5.2, интегрировал его с angularJS и защитил с помощью jwt.
Это мой первый опыт работы с jwt, а не с angularjs, и в моих прошлых проектах (с использованием Spring mvc / security, angularJS и session вместо jwt) я мог защитить ресурсы, перехватывая URL-адрес с spring security, например так:
<sec:intercept-url pattern="*/app/**" access="isAuthenticated()" />
Есть ли способ сделать это с laravel ?, я уже сделал проверку javascript, поэтому, если токен jwt недействителен, пользователи не могут получить доступ к какому-либо маршруту, кроме входа в систему, проблема в том, что источник javascript доступен, либо пользователь вошли или нет.
Вы можете сделать это в закрытии маршрута:
Route::get('script/{filename}', function($filename){
return response(file_get_contents(public_path('/assets/js/' . $filename)))->header('Content-Type', 'text/javascript')
})->middleware(['auth']);
Хотя это означает, что каждый запрос к этому файлу требует начальной загрузки всего приложения, что существенно снижает производительность. Однако, когда вызывается только один раз, это не так уж важно.
Примечание Закрытие маршрута имеет побочные эффекты; одна из самых больших проблем заключается в том, что файл не может быть кэширован при использовании Closures.
Других решений пока нет …