📅  最后修改于: 2023-12-03 15:24:56.548000             🧑  作者: Mango
在使用 Laravel 的时候,如果需要通过 POST 请求传递令牌,可以使用 Laravel 自带的 CSRF 保护功能。在每次请求中,Laravel 自动为每个请求生成一个 CSRF 令牌,以确保请求的安全性。
要在 HTML 表单中添加 CSRF 令牌,可以使用 Laravel 提供的 @csrf
Blade 指令,该指令将在生成表单时自动添加 CSRF 令牌。
<form method="POST" action="/example">
@csrf
<!-- 表单内容 -->
</form>
要验证 CSRF 令牌,可以使用 Laravel 自带的 CSRF 中间件。在控制器中使用 middleware
方法将 CSRF 中间件添加到路由中:
Route::post('/example', 'ExampleController@store')->middleware('csrf');
在控制器中,可以使用 $request
对象的 validate
方法验证 CSRF 令牌是否有效:
public function store(Request $request)
{
$request->validate([
'_token' => 'required|csrf',
]);
// 处理请求
}
现在,在 HTML 表单中添加 CSRF 令牌并在控制器中验证令牌后,可以通过 POST 请求发送数据和令牌。可以使用 Laravel 的 Request
对象的 input
方法将数据和 CSRF 令牌传递给控制器:
use Illuminate\Http\Request;
public function store(Request $request)
{
$data = $request->input('data');
$token = $request->input('_token');
// 处理数据和令牌
}
使用 Laravel 带来了许多方便和安全性,特别是在处理表单时。通过在表单中添加 CSRF 令牌并在控制器中验证令牌,可以确保请求的安全性。