PHP code example of tinywan / jwt
1. Go to this page and download the library: Download tinywan/jwt library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
tinywan / jwt example snippets
use Tinywan\Jwt\JwtToken;
$user = [
'id' => 2022,
'name' => 'Tinywan',
'email' => '[email protected] '
];
$token = JwtToken::generateToken($user);
var_dump(json_encode($token));
$id = Tinywan\Jwt\JwtToken::getCurrentId();
$email = Tinywan\Jwt\JwtToken::getExtend();
$email = Tinywan\Jwt\JwtToken::getExtendVal('email');
$refreshToken = Tinywan\Jwt\JwtToken::refreshToken();
$exp = Tinywan\Jwt\JwtToken::getTokenExp();
'is_single_device' => true,
$user = [
'id' => 2022,
'name' => 'Tinywan',
'client' => 'MOBILE',
];
$token = Tinywan\Jwt\JwtToken::generateToken($user);
var_dump(json_encode($token));
$user = Tinywan\Jwt\JwtToken::getUser();
'user_model' => function($uid) {
// 返回一个数组
return \think\facade\Db::table('resty_user')
->field('id,username,create_time')
->where('id',$uid)
->find();
}
'user_model' => function($uid) {
// 返回一个对象
return \support\Db::table('resty_user')
->where('id', $uid)
->select('id','email','mobile','create_time')
->first();
}
$res = Tinywan\Jwt\JwtToken::clear();
// 生成WEB令牌
$user = [
'id' => 2022,
'name' => 'Tinywan',
'client' => JwtToken::TOKEN_CLIENT_WEB
];
$token = JwtToken::generateToken($user);
// 生成移动端令牌
$user = [
'id' => 2022,
'name' => 'Tinywan',
'client' => JwtToken::TOKEN_CLIENT_MOBILE
];
$token = JwtToken::generateToken($user);
$extend = [
'id' => 2024,
'access_exp' => 7200, // 2 小时
];
$token = Tinywan\Jwt\JwtToken::generateToken($extend);
+--------------+-------------------------------+--------------------+
| "alg" Param | Digital Signature or MAC | Implementation |
| Value | Algorithm | Requirements |
+--------------+-------------------------------+--------------------+
| HS256 | HMAC using SHA-256 | Required |
| HS384 | HMAC using SHA-384 | Optional |
| HS512 | HMAC using SHA-512 | Optional |
| RS256 | RSASSA-PKCS1-v1_5 using | Recommended |
| | SHA-256 | |
| RS384 | RSASSA-PKCS1-v1_5 using | Optional |
| | SHA-384 | |
| RS512 | RSASSA-PKCS1-v1_5 using | Optional |
| | SHA-512 | |
| ES256 | ECDSA using P-256 and SHA-256 | Recommended+ |
| ES384 | ECDSA using P-384 and SHA-384 | Optional |
| ES512 | ECDSA using P-521 and SHA-512 | Optional |
| PS256 | RSASSA-PSS using SHA-256 and | Optional |
| | MGF1 with SHA-256 | |
| PS384 | RSASSA-PSS using SHA-384 and | Optional |
| | MGF1 with SHA-384 | |
| PS512 | RSASSA-PSS using SHA-512 and | Optional |
| | MGF1 with SHA-512 | |
| none | No digital signature or MAC | Optional |
| | performed | |
+--------------+-------------------------------+--------------------+
The use of "+" in the Implementation Requirements column indicates
that the
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
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
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