laravel 8 接口鉴权封装服务层

本文介绍如何使用Composer安装Firebase的JWT库,并创建JwtToken类,实现用户ID的安全加密和解密。重点在于如何在HTTP服务中创建JWT并存储在缓存中以简化后续访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 下载 jwt 

composer require firebase/php-jwt

在http下创建一个service文件夹 存放Jwt类

Jwt 类内代码

<?php
namespace App\Http\Service;

use Firebase\JWT\JWT;

class JwtToken
{
    public  function generateToken($user_id)
    {
        $key = '小鱼'; //钥匙 自定义即可
        $token = array(
            "iss"=>$key,
            "aud"=>'www.exam.com/index.php/api/book', //自定义网址
            "iat"=>1640653922,//存入的时间
            "nbf"=>1640653922,//生效的时间
            "exp"=>1641653922,//过期的时间
            "data"=>[
                'user_id'=>$user_id,
            ]
        );
        //进行加密
        $jwt = JWT::encode($token,$key,"HS256");
        cache()->set($user_id,$jwt);
        //存入缓存方便下次读取
        return $jwt;
    }

    //解密TOKEN
    public  function decodeToken($token)
    {
        $key = '小鱼';
        //通过Hs256和钥匙进行解密 jwt 
        $decoded = JWT::decode($token, $key, array('HS256'));
        //这里可以直接返回解密后的数据 这里我直接返回的用户id
//        return $decoded;
        return $decoded->data->user_id;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值