leoding86 / jwt

:rocket: webman json web token (JWT) 认证插件

Home Page:https://www.workerman.net/webman

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

webman jwt 认证插件

Total Downloads License webman-jwt webman-jwt

Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。

JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。

安装

composer require tinywan/jwt

基本用法

生成令牌

use Tinywan\Jwt\JwtToken;

$user = [
    'id'  => 2022,
    'name'  => 'Tinywan',
    'email' => 'Tinywan@163.com'
];
$accessToken = JwtToken::generateToken($user);
var_dump(json_encode($accessToken));
输出(json格式)
{
    "token_type": "Bearer",
    "expires_in": 36000,
    "access_token": "eyJ0eXAiOiJAUR-Gqtnk9LUPO8IDrLK7tjCwQZ7CI...",
    "refresh_token": "eyJ0eXAiOiJIEGkKprvcccccQvsTJaOyNy8yweZc..."
}
响应参数
参数 类型 描述 示例值
token_type string Token 类型 Bearer
expires_in int 凭证有效时间,单位:秒 36000
access_token string 访问凭证 XXXXXXXXXXXXXXXXXXXX
refresh_token string 刷新凭证(访问凭证过期使用 ) XXXXXXXXXXXXXXXXXXX

获取当前uid

$uid = JwtToken::getCurrentId();

获取其他自定义字段

$email = JwtToken::getExtendVal('email');

刷新令牌

$accessToken = JwtToken::refreshToken();

Generate RS512, RS384 and RS256 keys

RS512

ssh-keygen -t rsa -b 4096 -E SHA512 -m PEM -P "" -f RS512.key
openssl rsa -in RS512.key -pubout -outform PEM -out RS512.key.pub

RS384

ssh-keygen -t rsa -b 4096 -E SHA354 -m PEM -P "" -f RS384.key
openssl rsa -in RS384.key -pubout -outform PEM -out RS384.key.pub

RS256

ssh-keygen -t rsa -b 4096 -E SHA256 -m PEM -P "" -f RS256.key
openssl rsa -in RS256.key -pubout -outform PEM -out RS256.key.pub

About

:rocket: webman json web token (JWT) 认证插件

https://www.workerman.net/webman

License:Apache License 2.0


Languages

Language:PHP 100.0%