Функция csrf_token
Функция csrf_token возвращает строку с CSRF-токеном, который автоматически генерируется для текущей сессии пользователя. Этот токен используется для проверки подлинности запросов, отправляемых через формы, и защиты от CSRF-атак. Функция не принимает никаких параметров и всегда возвращает строку.
Синтаксис
<?php
$token = csrf_token();
?>
Пример
Получим CSRF-токен и выведем его на экран:
<?php
$token = csrf_token();
echo $token;
?>
Результат выполнения кода:
"a1b2c3d4e5f6g7h8i9j0"
Пример
Используем функцию csrf_token в Blade-шаблоне для скрытого поля формы:
<form method="POST" action="/submit">
@csrf
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="text" name="name">
<button type="submit">Submit</button>
</form>
Результат выполнения кода:
<form method="POST" action="/submit">
<input type="hidden" name="_token" value="a1b2c3d4e5f6g7h8i9j0">
<input type="text" name="name">
<button type="submit">Submit</button>
</form>
Пример
Сравним CSRF-токен с сохранённым в сессии для проверки валидности запроса:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Session;
class FormController extends Controller
{
public function submit(Request $request)
{
$token = $request->input('_token');
$sessionToken = csrf_token();
if ($token === $sessionToken) {
echo "Token is valid";
} else {
echo "Token is invalid";
}
}
}
?>
Результат выполнения кода при валидном токене:
"Token is valid"
Смотрите также
-
функция
csrf_field,
которая генерирует HTML-поле с CSRF-токеном -
функция
method_field,
которая генерирует скрытое поле для указания HTTP-метода -
функция
old,
которая возвращает старое значение поля формы -
функция
session,
которая позволяет работать с данными сессии