request->getHostInfo(); $fullUrl = Yii::$app->request->url; $token = strpos($fullUrl, 'token') === false ? '' : 'hasToken'; return $this->renderPartial('index', ['host' => $host, 'token' => $token]); } public function actionJwt() { echo "
";
echo $_SERVER['HTTP_HOST'];print_r($_SERVER);die;
$time = time();
$signer = new Sha256();
$key = new Key('testing');
$token = (new Builder())->issuedBy('http://example.com')//发布者的url地址
->canOnlyBeUsedBy('http://example.org')//接受者的url地址
->identifiedBy('12358', true)//该jwt的唯一ID编号
->issuedAt($time)//该jwt的发布时间
->canOnlyBeUsedAfter($time + 60)//该jwt的使用时间不能早于该时间
->expiresAt($time + 3600)//该jwt销毁的时间
->with('uid', 1)
->set('username', 'lili')//设置一个变量
->sign($signer, $key)//设置一个变量,同set
->getToken();
echo '';
echo $token;
echo '
';
$token->getHeaders(); // Retrieves the token headers
$token->getClaims(); // Retrieves the token claims
echo '
';
echo $token->getHeader('jti'); // will print "4f1g23a12aa"
echo '
';
echo $token->getClaim('iss'); // will print "http://example.com"
$token = (new Parser())->parse((string)'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImp0aSI6IjEyMzU4In0.eyJpc3MiOiJodHRwOlwvXC9leGFtcGxlLmNvbSIsImF1ZCI6Imh0dHA6XC9cL2V4YW1wbGUub3JnIiwianRpIjoiMTIzNTgiLCJpYXQiOjE1NzQzNDk5OTYsIm5iZiI6MTU3NDM1MDA1NiwiZXhwIjoxNTc0MzUzNTk2LCJ1aWQiOjF9.6FtTHmMlqhI1BNoFJiJrmm1nXXtc5-u2tVt-A8s8IN8
');
$token->getHeaders(); // Retrieves the token header
$token->getClaims(); // Retrieves the token claims
echo "
....
";
echo $token->getHeader('jti'); // will print "4f1g23a12aa"
echo '
';
echo $token->getClaim('iss'); // will print "http://example.com"
echo '
';
echo $token->getClaim('uid'); // will print "1"
echo '
';
$data = new ValidationData(); // It will use the current time to validate (iat, nbf and exp)
$data->setIssuer('http://example.com');
$data->setAudience('http://example.org');
$data->setId('12358');
//先验证私钥
var_dump($token->verify($signer, $key));
//失败,因为token在60秒后方可验证
var_dump($token->validate($data));
$data->setCurrentTime($time + 61); // changing the validation time to future
// true
var_dump($token->validate($data));
$data->setCurrentTime(time() + 4000);
//false,token过期
var_dump($token->validate($data));
}
}