yii2-jws
An extension to manage signed JWS tokens, (*1)
This library interfaces with
namshi/jose to generate signed
JWS tokens., (*2)
For license information check the LICENSE-file., (*3)
Installation
The preferred way to install this extensions is through composer., (*4)
Either run, (*5)
php composer.phar require --prefer-dist thamtech/yii2-jws
or add, (*6)
"thamtech/yii2-jws": "*"
to the require
section of your composer.json
file., (*7)
Integration
-
Generate a kepair using OpenSSL
and store the keys in public.pem and private.pem., (*8)
-
Add the JwsManager application component in your site configuration:, (*9)
return [
'components' => [
'jwsManager' => [
'class' => 'thamtech\jws\components\JwsManager',
'pubkey' => '@app/config/keys/jws/public.pem',
'pvtkey' => '@app/config/keys/jws/private.pem',
// The settings below are optional. Defaults will be used if not set here.
//'encoder' => 'Namshi\JOSE\Base64\Base64UrlSafeEncoder',
//'exp' => '1 hour',
//'alg' => 'RS256',
//'jwsClass' => 'Namshi\JOSE\SimpleJWS',
],
]
]
Usage
Generate a new token:, (*10)
$payload = [
"user_id": 23,
"foo": "bar",
];
$tokenString = Yii::$app->jwsManager->newToken($payload);
Verify that this string is a token that we signed:, (*11)
$token = Yii::$app->jwsManager->load($tokenString);
$result = Yii::$app->jwsManager->verify($token);
Verify that this string is a token that we signed AND (if it is an instance
of \Namshi\JOSE\SimpleJWS
wih an expiration) that it is not expired:, (*12)
$token = Yii::$app->jwsManager->load($tokenString);
$result = Yii::$app->jwsManager->isValid($token);
See Also