📜  安装 tymon jwt laravel - PHP (1)

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

安装 tymon jwt laravel

tymon/jwt-auth是一个非常受欢迎的 Laravel 扩展包,使用 JSON Web Token (JWT) 进行身份认证。JWT 是一个开放标准 (RFC 7519),定义了一种紧凑的、自包含的格式,用于作为 JSON 在不同系统中安全地传输信息。

安装 tymon/jwt-auth

可以从 GitHubPackagist 上找到 tymon/jwt-auth。

在 Laravel 应用中,可以使用 Composer 快速安装 tymon/jwt-auth:

composer require tymon/jwt-auth

这将自动安装最新版本的 tymon/jwt-auth,以及所有必需的依赖项。

配置
  1. 注册服务提供者

在 config/app.php 文件中,将 Tymon\JWTAuth\Providers\LaravelServiceProvider 类添加到 providers 数组中:

'providers' => [
    // ...
    Tymon\JWTAuth\Providers\LaravelServiceProvider::class,
],
  1. 发布配置文件

使用以下 Artisan 命令发布配置文件:

php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"

这会在 config 目录中创建一个名为 jwt.php 的配置文件。该文件包含 JWT 认证的各种设置,例如算法、密钥、有效期等。

在应用程序中的任何位置,您都可以使用 config('jwt.key') 等函数来访问这些设置。

  1. 生成 JWT 密钥

为了安全起见,应该生成一个随机的 JWT 密钥。可以使用 Artisan 命令来生成:

php artisan jwt:secret

这会向 .env 文件中添加新的 JWT_SECRET 值。

使用

在认证过程中,可以使用 Auth::attempt() 方法进行身份验证。但是,对于一个 API 或将来需要跨域身份验证的应用程序,使用 JWT 更好。

使用 tymon/jwt-auth,可以创建和签名 JWT,将其发送到客户端,并在客户端中存储它们。在此之后,客户端可以在每个请求中包含 JWT,以便服务端可以验证用户。

以下示例生成 JWT,签署它,并将其发送回客户端:

use Tymon\JWTAuth\Facades\JWTAuth;

// user information
$user = [
    'name' => 'John Doe',
    'email' => 'john@example.com',
    'role' => 'admin',
];

// generate JWT for user
$token = JWTAuth::fromUser($user);

// sign JWT and add it to response
return response()->json([
    'token' => $token,
]);

如果客户端包含 JWT,则可以使用 tymon/jwt-auth 验证它:

use Tymon\JWTAuth\Facades\JWTAuth;

// get JWT from request
$jwt = request()->bearerToken();

// attempt to verify JWT
$user = JWTAuth::parseToken()->authenticate();

// return authenticated user
return $user;

有了 JWT,服务端可以轻松地验证用户身份并提供相应的资源。