密码散列算法函数

		$password_plaintext = "12345";
        $password_hash = password_hash( $password_plaintext, PASSWORD_DEFAULT);
        if (password_verify('12345', $password_hash)) {
            echo 'Password is valid!';
        } else {
            echo 'Invalid password.';
        }

JWT生成Token和Token验签

//签发token
    public static function signJWTToken($data){
        $token = array(
            "iss"   => "易学派", //签发者
            "time"  => self::getDateTimeByTime(), //签发时间
            'data'  => $data //可以用户ID,可以自定义
        );
        $jwt = new JWT();
        $jwt = $jwt::encode($token, self::$key,'HS256');
        return $jwt;
    }
    //验证token
    public static function checkJWTToken($token){
        try {
//            JWT::$leeway = 60;//当前时间减去60,把时间留点余地
            $decoded = JWT::decode($token, self::$key, array('HS256')); //HS256方式,这里要和签发的时候对应
            $arr = (array)$decoded;
            $arr = (array)$arr['data'];
            return $arr;

        } catch(\Firebase\JWT\SignatureInvalidException $e) { //签名不正确
            return self::returnMsg(false,array('code'=>'10001','message'=>'签名不正确'));
        }catch(\Firebase\JWT\BeforeValidException $e) { // 签名在某个时间点之后才能用
            return self::returnMsg(false,array('code'=>'10001','message'=>'签名在某个时间点之后才能用'));
        }catch(\Firebase\JWT\ExpiredException $e) { // token过期
            return self::returnMsg(false,array('code'=>'10001','message'=>'登陆失败,请重新登陆'));
        }catch(Exception $e) { //其他错误
            return self::returnMsg(false,array('code'=>'10001','message'=>'其他错误'));
        }
    }