使用laravel保护javascript资源

时间:2016-09-09 02:22:06

标签: php angularjs laravel jwt satellizer

我用laravel 5.2构建了rest api,将它与angularJS集成并用jwt保护它。

这是我第一次使用jwt,而不是使用angularjs,在我过去的项目中(使用spring mvc / security,angularJS和session而不是jwt),我可以通过使用spring security来拦截url来保护资源,如下所示:

<sec:intercept-url pattern="*/app/**" access="isAuthenticated()" />

有没有办法用laravel做这个?,我已经做了javascript验证,所以如果jwt令牌无效,用户无法访问任何路由但登录,问题是javascript源是可用的用户是否登录。

1 个答案:

答案 0 :(得分:4)

您可以在路线关闭中执行此操作:

Route::get('script/{filename}', function($filename){
    return response(file_get_contents(public_path('/assets/js/' . $filename)))->header('Content-Type', 'text/javascript')
})->middleware(['auth']);

虽然这意味着对此文件的每个请求都需要引导整个应用程序,这是一个重大的性能损失。但是,当只调用一次时,这不是一个大问题。

旁注路线封闭有副作用;最大的问题之一是在使用Closures时无法缓存文件。