Token加密-JWT

composer require firebase/php-jwt

public function getToken()
    {
        $key = config('wx.jwt_key');  //这里是自定义的一个随机字串,应该写在config文件中的,解密时也会用,相当    于加密中常用的 盐  salt
        $token = [
            "iss" => "",  //签发者 可以为空
            "aud" => "", //面象的用户,可以为空
            "iat" => time(), //签发时间
            "nbf" => time(), //在什么时候jwt开始生效  (这里表示生成100秒后才生效)
            "exp" => time() + 2592000, //token 过期时间
            "uid" => 59440 //记录的userid的信息,这里是自已添加上去的,如果有其它信息,可以再添加数组的键值对
        ];
        $jwt = JWT::encode($token, $key, "HS256"); //根据参数生成了 token
        return json([
            "token" => $jwt
        ]);
    }

public function checkToken()
    {
        $token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiIiLCJhdWQiOiIiLCJpYXQiOjE1NzU2MTQwNzcsIm5iZiI6MTU3NTYxNDA3NywiZXhwIjoxNTc4MjA2MDc3LCJ1aWQiOjU5NDQwfQ.Yj0zqZoDoA8FmWgpT_7zyaQXBWJU7fkHKpZhGXLIPOc";
        $key = config('wx.jwt_key');  //上一个方法中的 $key 本应该配置在 config文件中的
        try {
            $info = JWT::decode($token, $key, ["HS256"]); //解密jwt
            return json($info);
        } catch (\Exception $e) {
            return $e->getMessage();
        }
    }

 

posted @ 2020-08-03 10:44  CanyingV  阅读(468)  评论(0)    收藏  举报