Laravel 8解析token

82 阅读1分钟

jwt组成三部分:

(1)头部:一个json字符串,包含当前令牌名称,以及加密算法。

(2)载荷:一个json字符创,包含一些自定义的信息。

(3)签名:由头部信息使用base64加密之后,拼接上载荷使用base64加密之后的部分,在加上当前的密钥,进行头部中的加密算法进行加密。

use Tymon\JWTAuth\Facades\JWTAuth;
use Tymon\JWTAuth\Exceptions\TokenExpiredException;
use Tymon\JWTAuth\Exceptions\TokenInvalidException;
    public function do_Like(Request $request)
    {
        $jwt_token =you token';

        try {
            $decoded_payload = JWTAuth::setToken($jwt_token)->payload();
            $user_data = $decoded_payload->toArray();
            // 编码用户数据
            $encoded_user_data = json_encode($user_data);
            // 将用户数据返回给前端
            return $encoded_user_data;
        } catch (TokenExpiredException $e) {
            // 处理过期异常
            return response()->json(['error' => 'JWT 令牌已过期'], 400);
        } catch (TokenInvalidException $e) {
            // 处理令牌无效异常
            return response()->json(['error' => 'JWT 令牌无效'], 400);
        } catch (\Exception $e) {
            // 处理其他解码错误
            return response()->json(['error' => '解析 JWT 载荷时发生错误:' . $e->getMessage()], 400);
        }
    }
}