1、安装jwt

  1. composer require firebase/php-jwt

2、引入jwt

  1. use Firebase\JWT\JWT;
  2. use Firebase\JWT\Key;

3、生成token

aud字段在单点登录的时候使用, a.com b.com 两个系统标识出来

  1. $secret = '123'; // 密匙
  2. $payload = [
  3. 'iss'=>'sol', // 签发人(官方字段:非必需)
  4. 'exp'=>time()+3600*24*7, // 过期时间(官方字段:非必需)
  5. 'aud'=>'admin', // 受众,谁使用这个token(官方字段:非必需)
  6. 'nbf'=>time(), // 生效时间(官方字段:非必需)
  7. 'iat'=>time(), // 签发时间(官方字段:非必需)
  8. 'user_id'=>$adminId, // 自定义字段 一般为user_id
  9. ];
  10. $jwt = JWT::encode($payload, $secret, 'HS256');
  11. echo $jwt;

4、解码token获取信息

  1. $token = JWT::decode($str, new Key($secret, 'HS256'));
  2. dump($token);
  3. // 解码出来就是上一步的 $payload 对象,用数组的话转化一下就OK