Защита от CSRF в Laravel
Как работает
1. Генерация токена
2. Отправка токена: Когда пользователь отправляет форму, браузер отправляет токен
3. Валидация токена: Laravel проверяет, совпадает ли токен
Использование
Просто добавьте
👉 @web_craft | #laravel
@csrf
- это директива Blade
, используемая в Laravel для защиты веб-приложений от атак с межсайтовой подделкой запросов (CSRF)
.Как работает
@csrf
:1. Генерация токена
CSRF
: Когда пользователь запрашивает страницу, содержащую форму, Laravel автоматически генерирует уникальный токен CSRF
и сохраняет его в сессии пользователя. Этот токен также добавляется в качестве скрытого поля формы.2. Отправка токена: Когда пользователь отправляет форму, браузер отправляет токен
CSRF
вместе с другими данными формы на сервер.3. Валидация токена: Laravel проверяет, совпадает ли токен
CSRF
, отправленный с формой, с токеном, хранящимся в сессии пользователя.Использование
@csrf
:Просто добавьте
@csrf
внутрь тега формы в вашем Blade-шаблоне. Laravel автоматически позаботится о генерации и добавлении скрытого поля токена CSRF
.<form method="POST" action="/submit-form">
@csrf
<button type="submit">Отправить</button>
</form>
👉 @web_craft | #laravel
Превращение событий PostgreSQL в события Laravel
В статье рассказывается, как можно преобразовать события, возникающие в PostgreSQL, в события Laravel.
👉 @web_craft | #laravel
В статье рассказывается, как можно преобразовать события, возникающие в PostgreSQL, в события Laravel.
👉 @web_craft | #laravel
Понимание Laravel Sanctum
Статья рассматривает Laravel Sanctum – библиотеку для аутентификации и авторизации в Laravel.
👉 @web_craft | #laravel
Статья рассматривает Laravel Sanctum – библиотеку для аутентификации и авторизации в Laravel.
👉 @web_craft | #laravel
Работа метода Log::withContext()
Что делает метод
Сомневаетесь? Рассматривали этот функционал в посте15.04.2024 .
👉 @web_craft | #laravel
Что делает метод
Log::withContext()
?Сомневаетесь? Рассматривали этот функционал в посте
👉 @web_craft | #laravel
Создание и управление JSON-ответами
Пример API, возвращающего информацию о пользователе:
👉 @web_craft | #laravel
Response()->json()
— это метод в Laravel, который упрощает процесс создания JSON-ответов,устанавливая заголовок Content-Type как application/json
. Это гарантирует правильное распознавание данных клиентскими приложениями.Пример API, возвращающего информацию о пользователе:
use Illuminate\Http\Request;
use App\Models\User;
public function getUser(Request $request, $id) {
$user = User::find($id);
if ($user) {
return response()->json([
'success' => true,
'message' => 'Пользователь найден',
'data' => $user
]);
} else {
return response()->json([
'success' => false,
'message' => 'Пользователь не найден',
'data' => null
], 404);
}
}
Find($id)
ищет пользователя по ID. Если найден, возвращается JSON с данными и статусом 200. Если нет — JSON с ошибкой и статусом 404. Этот подход характерен для RESTful API.👉 @web_craft | #laravel
Как реализовать множественную аутентификацию в Laravel
Статья рассказывает о том, как создать гибкую систему множественной аутентификации в Laravel для веб-приложений, которая позволяет разным типам пользователей, таким как администраторы и обычные пользователи, входить в систему через различные процессы аутентификации.
👉 @web_craft | #laravel
Статья рассказывает о том, как создать гибкую систему множественной аутентификации в Laravel для веб-приложений, которая позволяет разным типам пользователей, таким как администраторы и обычные пользователи, входить в систему через различные процессы аутентификации.
👉 @web_craft | #laravel
Отправка токена CSRF
Какие данные отправляются на сервер вместе с токеном CSRF при отправке формы?
Функционал CSRF в Laravel разбирали в посте от22.04.2024 .
👉 @web_craft | #laravel
Какие данные отправляются на сервер вместе с токеном CSRF при отправке формы?
Функционал CSRF в Laravel разбирали в посте от
👉 @web_craft | #laravel
Гайд по мягкому удалению в Laravel
В статье объясняется, как использовать функционал мягкого удаления для управления записями базы данных без их физического удаления. С помощью мягкого удаления, записи остаются в базе данных, но помечаются как удалённые, что позволяет восстанавливать данные при необходимости. Автор статьи рассматривает, как настроить мягкое удаление, использовать его в различных сценариях и как это влияет на запросы к базе данных в Laravel.
👉 @web_craft | #laravel
В статье объясняется, как использовать функционал мягкого удаления для управления записями базы данных без их физического удаления. С помощью мягкого удаления, записи остаются в базе данных, но помечаются как удалённые, что позволяет восстанавливать данные при необходимости. Автор статьи рассматривает, как настроить мягкое удаление, использовать его в различных сценариях и как это влияет на запросы к базе данных в Laravel.
👉 @web_craft | #laravel
Улучшите свои запросы в Laravel Eloquent с помощью Tappable Scopes
Статья рассказывает о том, как использовать "tappable scopes" в Laravel для улучшения запросов Eloquent. Этот метод позволяет создавать более чистый и удобочитаемый код при работе с Eloquent-запросами, особенно при создании сложных фильтров и условий. Автор приводит примеры создания и использования таких "tappable scopes" для различных ситуаций, например, для фильтрации постов по дате публикации или выборки записей по ID пользователя.
👉 @web_craft | #laravel
Статья рассказывает о том, как использовать "tappable scopes" в Laravel для улучшения запросов Eloquent. Этот метод позволяет создавать более чистый и удобочитаемый код при работе с Eloquent-запросами, особенно при создании сложных фильтров и условий. Автор приводит примеры создания и использования таких "tappable scopes" для различных ситуаций, например, для фильтрации постов по дате публикации или выборки записей по ID пользователя.
👉 @web_craft | #laravel
Функция для JSON-ответов Laravel?
Какую функцию Laravel использует для создания JSON-ответов?
Забыли? Вернитесь к посту от06.05.2024 , в котором разбирали этот функционал.
👉 @web_craft | #laravel
Какую функцию Laravel использует для создания JSON-ответов?
Забыли? Вернитесь к посту от
👉 @web_craft | #laravel
Анонимные миграции в Laravel
Анонимные миграции – это функция Laravel, позволяющая создавать миграции без классов. Это упрощает управление миграциями и делает структуру проекта чище.
Как это работает:
Вы определяете миграции в PHP файлах с использованием методов
Пример использования:
👉 @web_craft | #laravel
Анонимные миграции – это функция Laravel, позволяющая создавать миграции без классов. Это упрощает управление миграциями и делает структуру проекта чище.
Как это работает:
Вы определяете миграции в PHP файлах с использованием методов
up()
и down()
, которые Laravel автоматически обрабатывает, не требуя от вас создания классов миграции.Пример использования:
// Создание миграции для таблицы пользователей
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
// Метод up для создания таблицы
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
// Метод down для удаления таблицы
Schema::dropIfExists('users');
👉 @web_craft | #laravel
Преобразование запросов и ответов API в Laravel 11
В статье рассматривается проблема различия в соглашениях об именовании в PHP (snake_case) и JavaScript (camelCase). Это может вызвать проблемы при работе с Next.js на фронтенде и Laravel на бэкенде в качестве традиционного REST API2.
Автор предлагает решение этой проблемы с помощью Laravel resources.
👉 @web_craft | #laravel
В статье рассматривается проблема различия в соглашениях об именовании в PHP (snake_case) и JavaScript (camelCase). Это может вызвать проблемы при работе с Next.js на фронтенде и Laravel на бэкенде в качестве традиционного REST API2.
Автор предлагает решение этой проблемы с помощью Laravel resources.
👉 @web_craft | #laravel
Функция анонимных миграций
Что такое анонимные миграции в Laravel?
Если забыли, то вернитесь к посту от27.05.2024 .
👉 @web_craft | #laravel
Что такое анонимные миграции в Laravel?
Если забыли, то вернитесь к посту от
👉 @web_craft | #laravel
Валидация в Laravel
Метод
Применение:
В данном примере определяется правило
После определения пользовательского правила, его можно использовать в валидаторе данных наряду со встроенными правилами:
👉 @web_craft | #laravel
Метод
Validator::extend()
предоставляет возможность создавать собственные правила валидации, выходя за рамки стандартного набора, предоставляемого Laravel.Применение:
Validator::extend('older_than', function ($attribute, $value, $parameters) {
$minAge = $parameters[0] ?? 18;
return Carbon::parse($value)->age >= $minAge;
});
В данном примере определяется правило
older_than
, которое проверяет, является ли указанная дата ($value
) датой рождения человека, достигшего возраста не менее $minAge
лет.После определения пользовательского правила, его можно использовать в валидаторе данных наряду со встроенными правилами:
$validator = Validator::make($data, [
'birthdate' => 'required|date|older_than:21',
]);
👉 @web_craft | #laravel
Как поднять уровень анализа вашего Laravel-приложения с 0 до 9 в Larastan
В статье рассказывается, что такое Larastan и какие преимущества дает его использование. Также подробно описывается, как настроить Larastan, и показано, как поэтапно повышать уровень анализа с 0 до 9. На каждом уровне в статье рассказывается, какие типы ошибок будет находить Larastan.
👉 @web_craft | #laravel
В статье рассказывается, что такое Larastan и какие преимущества дает его использование. Также подробно описывается, как настроить Larastan, и показано, как поэтапно повышать уровень анализа с 0 до 9. На каждом уровне в статье рассказывается, какие типы ошибок будет находить Larastan.
👉 @web_craft | #laravel
Использование User-Agent в Laravel
При использовании сторонних API вы можете задавать свой собственный User-Agent. Если возникнет проблема, владелец API сможет связаться с вами, а не просто заблокирует доступ.
Пример:
Конфигурация:
В этом примере задается пользовательский User-Agent для всех HTTP-запросов, осуществляемых через фасад Http. Это позволяет идентифицировать ваше приложение при взаимодействии с внешними API и дает возможность владельцам API связаться с вами при необходимости.
👉 @web_craft | #laravel
При использовании сторонних API вы можете задавать свой собственный User-Agent. Если возникнет проблема, владелец API сможет связаться с вами, а не просто заблокирует доступ.
Пример:
namespace App\Providers;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
public function boot(): void
{
Http::globalOptions([
'headers' => [
'User-Agent' => config('app.user_agent'),
],
]);
}
}
Конфигурация:
// config/app.php
[
'user_agent' => 'X / 1.0 – https://x.com | elon@x.com',
];
В этом примере задается пользовательский User-Agent для всех HTTP-запросов, осуществляемых через фасад Http. Это позволяет идентифицировать ваше приложение при взаимодействии с внешними API и дает возможность владельцам API связаться с вами при необходимости.
👉 @web_craft | #laravel