Промежуточное ПО Laravel 8 JWT: реализация аутентификации JWT в Laravel 8

Под «промежуточным программным обеспечением Laravel 8 JWT» подразумевается интеграция веб-токенов JSON (JWT) с Laravel 8, популярной платформой PHP. Промежуточное программное обеспечение JWT позволяет защищать маршруты и конечные точки в вашем приложении Laravel путем проверки и аутентификации токенов JWT.

Вот несколько методов, которые вы можете использовать с примерами кода для реализации аутентификации JWT с использованием промежуточного программного обеспечения в Laravel 8:

  1. Создать токен JWT:
    Чтобы сгенерировать токен JWT, вы можете использовать библиотеку jwt, например firebase/php-jwt. Вот пример создания токена JWT:
use Firebase\JWT\JWT;
$payload = [
    'user_id' => 1,
    'email' => 'user@example.com'
];
$secretKey = 'your-secret-key';
$token = JWT::encode($payload, $secretKey);
  1. Создайте промежуточное программное обеспечение JWT.
    Далее вам необходимо создать собственное промежуточное программное обеспечение для обработки аутентификации JWT. Вот пример класса промежуточного программного обеспечения JWT:
namespace App\Http\Middleware;
use Closure;
use Firebase\JWT\JWT;
class JwtMiddleware
{
    public function handle($request, Closure $next)
    {
        $token = $request->header('Authorization');
        if (!$token) {
            return response()->json(['message' => 'Token not provided'], 401);
        }
        try {
            $secretKey = 'your-secret-key';
            $decoded = JWT::decode($token, $secretKey, ['HS256']);
            $request->user = $decoded;
        } catch (\Exception $e) {
            return response()->json(['message' => 'Invalid token'], 401);
        }
        return $next($request);
    }
}
  1. Регистрация промежуточного программного обеспечения JWT:
    Чтобы использовать промежуточное программное обеспечение JWT, вам необходимо зарегистрировать его в массиве $routeMiddlewareв классе App\Http\Kernel. Вот пример:
protected $routeMiddleware = [
    // Other middleware entries...
    'jwt' => \App\Http\Middleware\JwtMiddleware::class,
];
  1. Защита маршрутов с помощью промежуточного программного обеспечения JWT.
    Наконец, вы можете использовать промежуточное программное обеспечение jwtдля защиты определенных маршрутов или групп маршрутов в вашем приложении Laravel. Вот пример:
use App\Http\Controllers\YourController;
Route::group(['middleware' => 'jwt'], function () {
    Route::get('/protected-route', [YourController::class, 'protectedMethod']);
});

Это всего лишь базовая реализация аутентификации JWT с использованием промежуточного программного обеспечения в Laravel 8. Вы можете улучшить ее, добавив срок действия токена, токены обновления и т. д.