tp5.0使用JWT完成token认证技术
Sonder
2022-04-19
1508字
4分钟
浏览 (7.1k)
1、安装
composer require firebase/php-jwt
2、封装(在框架根目录extend下新建Token.php)
<?php
use Firebase\JWT\JWT;
class Token
{
const SECRET = 'hello';//密钥
//创建token
static public function create_token($uid = 1)
{
$payload = [
'iss' => 'pyg', //签发人(官方字段:非必需)
'exp' => time() + 60, //过期时间(官方字段:非必需)
'aud' => 'admin', //接收人(官方字段:非必需)
'nbf' => time(), //生效时间(官方字段:非必需)
'iat' => time(), //签发时间(官方字段:非必需)
'admin_id' => $uid, //自定义字段(用户id)
];
$token = JWT::encode($payload, self::SECRET, 'HS256');
return $token;
}
//验证token
static public function verify_token($token)
{
try {
$Result = JWT::decode($token, self::SECRET, ['HS256']);
return true;
} catch (\Exception $e) {
return false;
}
}
}
3、调用(参考)
<?php
namespace app\api\controller;
use think\Controller;
use think\Request;
use Token;
class Login extends Controller
{
public function login(){
//登录成功生成token
$user_id = 2;
$token = Token::create_token($user_id);
return $token;
}
public function verifyToken(){
$token = input('token');
$res = Token::verify_token($token);
var_dump($res);
}
}
本文转自 https://www.cnblogs.com/ccdr/p/15083214.html,如有侵权,请联系删除。