-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1 from yonGnanWong/master
补充readme
- Loading branch information
Showing
1 changed file
with
99 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,99 @@ | ||
# jwt | ||
# jwt | ||
|
||
基于easyswoole组件实现的json web token | ||
|
||
## 安装 | ||
可以通过composer安装 | ||
~~~ | ||
composer require easyswoole/jwt | ||
~~~ | ||
|
||
## 依赖 | ||
~~~ | ||
* PHP version >= PHP 7.1 | ||
* easyswoole 组件包括 spl 与 utility | ||
~~~ | ||
|
||
## 使用示例 | ||
~~~php | ||
<?php | ||
|
||
require 'vendor/autoload.php'; | ||
|
||
/** @var \EasySwoole\Jwt\Object $obj */ | ||
//设置加密方式 支持AES 与 HMACSHA256 设置密钥默认为EasySwoole | ||
$obj = \EasySwoole\Jwt\Jwt::getInstance()->algMethod('AES')->setSecretKey('测试呀')->publish(); | ||
|
||
$data = '测试用例'; | ||
|
||
### 设置Payload ### | ||
|
||
//设置过期时间 默认为当前时间加2小时 | ||
$obj->setExp(time()+3600); | ||
//设置签发时间,默认time() | ||
$obj->setIat(time()); | ||
//设置签发者.默认为EasySwoole | ||
$obj->setIss('测试'); | ||
|
||
$token = $obj->__toString(); | ||
|
||
var_dump($token); | ||
|
||
//decode token | ||
$jwt = \EasySwoole\Jwt\Jwt::getInstance(); | ||
|
||
try{ | ||
//验证token,解密并验证签名验证过期时间 | ||
/** @var \EasySwoole\Jwt\Object $result */ | ||
$result = $jwt -> decode($token); | ||
|
||
var_dump($result); | ||
|
||
switch ($result->getStatus()) | ||
{ | ||
case 1: | ||
echo '验证通过'; | ||
break; | ||
case 2: | ||
echo '验证失败'; | ||
break; | ||
case 3: | ||
echo 'token过期'; | ||
break; | ||
} | ||
//根据解密之后的结果完善业务逻辑 | ||
}catch (\Exception $e){ | ||
|
||
} | ||
|
||
~~~ | ||
### 输出结果: | ||
~~~ | ||
☁ jwt [master] ⚡ php test.php | ||
string(470) "eyJhbGciOiJBRVMiLCJpc3MiOiLmtYvor5UiLCJleHAiOjE1NjgyODg5MTMsInN1YiI6bnVsbCwibmJmIjoxNTY4Mjg1MzEzLCJhdWQiOm51bGwsImlhdCI6MTU2ODI4NTMxMywianRpIjoicDlhQVo0RnhxbyIsInNpZ25hdHVyZSI6IjZ2dUxMZE1ZcjRsQUtxWE55Uy9tVUlKb3hxV1FwblZXRGZFWkFXcUtNbXFzV002UENkbTZJZDlhZ0EzL3J6Y3pxd295UWdrR291eGdLdVlUTThnNVluZ2NZVnhGeFErYVY4U1lqZ256dGZYMlN2cXBYNnhDaVBNQnZ5K3c1Qi9Dc2I0VzBDelEwMXQ1STNFeVo5Uy9PRjBtQzdhaTN6TElIdkhvQkxRbEQvM3pmY09maHhnVUZGSXlLOG1adERYKyIsInN0YXR1cyI6MSwiZGF0YSI6bnVsbH0%3D" | ||
object(EasySwoole\Jwt\Object)#4 (11) { | ||
["alg":protected]=> | ||
string(3) "AES" | ||
["iss":protected]=> | ||
string(6) "测试" | ||
["exp":protected]=> | ||
int(1568288913) | ||
["sub":protected]=> | ||
NULL | ||
["nbf":protected]=> | ||
int(1568285313) | ||
["aud":protected]=> | ||
NULL | ||
["iat":protected]=> | ||
int(1568285313) | ||
["jti":protected]=> | ||
string(10) "p9aAZ4Fxqo" | ||
["signature":protected]=> | ||
string(192) "6vuLLdMYr4lAKqXNyS/mUIJoxqWQpnVWDfEZAWqKMmqsWM6PCdm6Id9agA3/rzczqwoyQgkGouxgKuYTM8g5YngcYVxFxQ+aV8SYjgnztfX2SvqpX6xCiPMBvy+w5B/Csb4W0CzQ01t5I3EyZ9S/OF0mC7ai3zLIHvHoBLQlD/3zfcOfhxgUFFIyK8mZtDX+" | ||
["status":protected]=> | ||
int(1) | ||
["data":protected]=> | ||
NULL | ||
} | ||
验证通过% | ||
~~~ |