本文实例讲述了ThinkPHP5框架中使用JWT的方法。分享给大家供大家参考,具体如下:
JWT下载地址:https://jwt.io
可以直接去github上下载,也可以使用composer
使用composer的话要确保你的电脑上安装了composer,进入项目根目录下载即了,自动会放在vendor目录下
创建文件
我是放在common目录下
使用教程
github都有的
贴源码
JWTAuth.php
<"#$%#$%*&^(*(*(";
private $decodeToken;
public static function getInstance() {
if(is_null(self::$instance)) {
self::$instance = new self();
}
return self::$instance;
}
private function __contruct(){
}
private function __clone(){
}
public function encode(){
$time = time();
$this->token = (new builder())->setHeader('alg','HS256')
->setIssuer($this->iss)
->setAudience($this->aud)
->setIssuedAt($time) //生效时间
->setExpiration($time + 20)//过期时间
->set('uid',$this->uid)
->sign(new Sha256(), $this->secrect)//加密算法
->getToken();
return $this;
}
public function getToken(){
return (string)$this->token;
}
public function setToken($token){
$this->token = $token;
return $this;
}
/**
* 用户信息uid
* @param [type] $uid [description]
*/
public function setUid($uid){
$this->uid = $uid;
return $this;
}
public function jsonDecode(){
$token = $this->token;
$this->decodeToken = (new Parser())->parse((string) $token);
// echo $this->decodeToken->getClaim('uid');
return $this->decodeToken;
}
/**
* 验证令牌是否有效
* @return [type] [description]
*/
public function validate(){
$data = new ValidationData();
$data->setIssuer($this->iss);
$data->setAudience($this->aud);
return $this->jsonDecode()->validate($data);
}
/**
* 签名来验证令牌在生成后是否未被修改
* @return [type] [description]
*/
public function verify(){
$result = $this->jsonDecode()->verify(new Sha256(), $this->secrect);
return $result;
}
}
user.php 用来测试
<"_blank" href="//www.jb51.net/Special/39.htm">ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
标签:
ThinkPHP5,使用JWT
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
桃源资源网 Design By www.nqtax.com
暂无“ThinkPHP5框架中使用JWT的方法示例”评论...
