📜  如何通过 post 请求 laravel 传递令牌 - PHP (1)

📅  最后修改于: 2023-12-03 15:24:56.548000             🧑  作者: Mango

如何通过 POST 请求 Laravel 传递令牌

在使用 Laravel 的时候,如果需要通过 POST 请求传递令牌,可以使用 Laravel 自带的 CSRF 保护功能。在每次请求中,Laravel 自动为每个请求生成一个 CSRF 令牌,以确保请求的安全性。

第一步:在 HTML 表单中添加 CSRF 令牌

要在 HTML 表单中添加 CSRF 令牌,可以使用 Laravel 提供的 @csrf Blade 指令,该指令将在生成表单时自动添加 CSRF 令牌。

<form method="POST" action="/example">
    @csrf

    <!-- 表单内容 -->
</form>
第二步:在控制器中使用 CSRF 中间件验证令牌

要验证 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',
    ]);

    // 处理请求
}
第三步:通过 POST 请求传递令牌

现在,在 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 令牌并在控制器中验证令牌,可以确保请求的安全性。