目前 PHP 所有的 JWT 库都是用 PHP 语言编写的,为了提高性能,我基于 openssl 库,用 PHP 扩展实现了一个 JWT
GitHub: https://github.com/cdoco/php-jwt
$key = "example-hmac-key";
$claims = array(
"data" => [
"name" => "ZiHang Gao",
"admin" => true
],
"iss" => "http://example.org",
"sub" => "1234567890",
);
// default HS256 algorithm
$token = jwt_encode($claims, $key);
echo $token . PHP_EOL;
//eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.
//eyJpc3MiOiJodHRwOlwvXC9leGFtcGxlLm9yZyIsInN1YiI6IjEyMzQ1Njc4OTAiLCJuYW1lIjoiWmlIYW5nIEdhbyIsImFkbWluIjp0cnVlfQ.
//2lFeBTsRegsjXiBCZNkW41KFlsZPSFu7KTsyAM9lUiQ
print_r(jwt_decode($token, $key));
/**
Array
(
[data] => Array
(
[name] => ZiHang Gao
[admin] => 1
)
[iss] => http://example.org
[sub] => 1234567890
)
*/
1
oott123 2018-05-24 10:14:49 +08:00
怎么也得搞个 benchmark 让大家看看你的有多快啊,不然怎么吸引用户 233
|
2
qloog 2018-05-24 10:39:01 +08:00
能写出来就至少给个 666
|
3
predator 2018-05-24 10:48:14 +08:00
赞一个,7+的暂时只能在测试环境体验下先
|
4
gaozihang OP @oott123 我自己跑的 benchmark,是 PHP 的 5-6 倍,后续会把 benchmark 贴出来 ~
|
5
wensonsmith 2018-05-24 13:21:30 +08:00
战略 Mark, 666
|
6
yongjing 2018-05-24 14:06:44 +08:00
66666
|
7
m939594960 2018-05-24 14:17:31 +08:00
好东西啊
|
8
swordne 2018-05-24 17:19:07 +08:00
star 一下。
|
9
LeungJZ 2018-05-24 19:22:54 +08:00 via iPhone
战略性马克。
习惯性 666。 |
10
vibbow 2018-05-24 19:25:50 +08:00
其实并没有太大作用,单个请求周期里,JWT 运算占用的总运算时间非常之少,哪怕性能提升 1w 倍对整个请求的响应时间也不会有什么显著改进的。
而且还会导致跨版本升级的时候还需要等你这个扩展支持新版本... 目前耗时大头应该都是数据库操作... |
11
notreami 2018-05-24 22:47:05 +08:00
还不如加个缓存
|
12
changwei 2018-05-25 13:32:58 +08:00 via Android
jwt 的加解密操作主要都是用 php 扩展提供的加解密和序列化函数操作的,php 扩展函数本身就是 c 写的,理论来说纯扩展和 php 库的速度差别应该不大啊。
|
13
pushy 2018-05-25 16:15:20 +08:00
你的业务性能消耗在 JWT 上?
|