thinkphp5.1 使用php - jwt 生成token方法

1. 使用composer require firebase/php-jwt 安装  或直接用:https://github.com/firebase/php-jwt下载 手动放入项目中,

thinkphp5.1 使用php - jwt 生成token方法_第1张图片

2.将src下的4个PHP文件放入think下(我用的是thinkphp5.1)修改命名空间 namespase think;

thinkphp5.1 使用php - jwt 生成token方法_第2张图片

3.创建控制器Login.php 和 ResponseJson.php

.thinkphp5.1 使用php - jwt 生成token方法_第3张图片

"",  //签发者 可以为空
            "aud"=>"", //面象的用户,可以为空
            "iat" => config('jwt.lat'), //签发时间
            "nbf" => config('jwt.nbf'), //在什么时候jwt开始生效  (这里表示生成10秒后才生效)
            "exp" => config('jwt.exp'), //token 过期时间
            "uid" => '12', //记录的userid的信息,这里是自已添加上去的,如果有其它信息,可以再添加数组的键值对
            'password' => '123456',
            'mobile' => '12345678901', // 电话号码
        ];

        $jwtToken = JWT::encode($jwtData, $key);

        return $this->jsonSuccessData([
                'token' =>$jwtToken,
        ]);
    }
}

 


jsonResponse($code,$message,$data);
    }

    // app接口请求成功的返回
    public function jsonSuccessData($data = [])
    {
        return $this->jsonResponse(0,'success',$data);
    }

    // 返回一个json
	private function jsonResponse($code,$message,$data = [])
	{
		$content = [
			'code'=>$code,
			'message'=>$message,
			'data'=>$data,
		];
		return json_encode($content);
	}

}

5.在config下创建jwt.php配置文件,在Login控制器中用 config('jwt.key');来调用配置参数,jwt.php代码如下

thinkphp5.1 使用php - jwt 生成token方法_第4张图片

 'yangguang', //自定义key的值
    'lat' => time(),   // 签发时间
    'nbf' => time()+10,   // 生效时间
    'exp' => time()+24 * 3600 , // 过期时间




];

4.创建控制器Login.php 和 ResponseJson.php

.thinkphp5.1 使用php - jwt 生成token方法_第5张图片

"",  //签发者 可以为空
            "aud"=>"", //面象的用户,可以为空
            "iat" => config('jwt.lat'), //签发时间
            "nbf" => config('jwt.nbf'), //在什么时候jwt开始生效  (这里表示生成10秒后才生效)
            "exp" => config('jwt.exp'), //token 过期时间
            "uid" => '123', //记录的userid的信息,这里是自已添加上去的,如果有其它信息,可以再添加数组的键值对
            'password' => '123456',
            'mobile' => '13180808004',
        ];

        $jwtToken = JWT::encode($jwtData, $key);

        return $this->jsonSuccessData([
                'token' =>$jwtToken,
        ]);
    }
}

 


jsonResponse($code,$message,$data);
    }

    // app接口请求成功的返回
    public function jsonSuccessData($data = [])
    {
        return $this->jsonResponse(0,'success',$data);
    }

    // 返回一个json
	private function jsonResponse($code,$message,$data = [])
	{
		$content = [
			'code'=>$code,
			'message'=>$message,
			'data'=>$data,
		];
		return json_encode($content);
	}

}

 

 

你可能感兴趣的:(thinkphp5.1 使用php - jwt 生成token方法)