📜  Laravel jwt 检查请求发送的令牌是否有效 - PHP (1)

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

Laravel JWT 检查请求发送的令牌是否有效 - PHP

在 Web 应用程序中,身份验证和授权是很重要的部分。JSON Web Token(JWT)是一种用于身份验证和授权的开放标准,通常用于 Web 应用程序中的 API。

在 Laravel 中使用 JWT 可以很容易地实现身份验证和授权。您可以使用 Laravel JWT 包来创建、签发和验证 JWT。

安装 Laravel JWT

要使用 Laravel JWT,您需要先安装该包。您可以使用 composer 安装 Laravel JWT 包。

composer require tymon/jwt-auth
生成 JWT token

在使用 JWT 进行身份验证之前,您需要生成 JWT 令牌并将其传递给客户端。

$token = JWTAuth::fromUser($user);
检查 JWT 令牌是否有效

在客户端发送请求时,您需要检查 JWT 令牌是否有效。您可以使用 jwt-auth 中的 attempt 方法来检查 JWT 令牌是否有效。

if ($token = JWTAuth::attempt($credentials)) {
    // 检查通过
} else {
    // 检查失败
}

以下是一个完整的例子:

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Tymon\JWTAuth\Facades\JWTAuth;

Route::post('/login', function(Request $request) {
    $credentials = $request->only('email', 'password');

    if ($token = JWTAuth::attempt($credentials)) {
        return response()->json(['token' => $token]);
    } else {
        return response()->json(['error' => 'Unauthorized'], 401);
    }
});

Route::get('/user', function() {
    $user = Auth::user();

    return response()->json(compact('user'));
})->middleware('jwt.verify');

在上面的例子中,我们创建了一个路由 /login,用于用户身份验证。我们还创建了一个受保护的路由 /user,在访问该路由之前,需要进行身份验证。在路由中使用了 jwt.verify 中间件来检查 JWT 令牌是否有效。

结论

到此为止,我们已经学习了如何使用 Laravel JWT 检查请求发送的令牌是否有效。JWT 是一种非常流行的身份验证和授权机制,因为它可以通过令牌的方式轻松地进行身份验证和授权。如果您想要在 Laravel 中实现身份验证和授权,那么 JWT 是您应该考虑的一种机制。