在布局中包含CSRF令牌

时间:2016-04-30 15:25:10

标签: laravel laravel-5 laravel-5.2

我想在布局中包含CSRF令牌,以便我的javascript代码可以全局访问:

. . .
<body data-token="{{ csrf_token() }}">
. . .

这种方法是一个很好的实践,还是会引入任何安全漏洞/其他问题?

2 个答案:

答案 0 :(得分:1)

这实际上是Laravel有一种内置的管理方式。

https://laravel.com/docs/master/routing#csrf-x-csrf-token

答案 1 :(得分:1)

在layout.blade.php的head部分添加以下元标记:

<head>
    ...
    <meta name="csrf-token" content="{{ csrf_token() }}" />
    ...
</head>

在in document.ready中添加以下内容:

$(document).ready(function() {
    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });
    ...
});