1. Go to this page and download the library: Download kakadu-dev/yii2-jwt-auth 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/ */
kakadu-dev / yii2-jwt-auth example snippets
return [
'components' => [
'migrate' => [
'class' => yii\console\controllers\MigrateController::class,
// set false if you use namespaces
'migrationPath' => '@console/migrations',
'migrationNamespaces' => [
// ...
'Kakadu\Yii2JwtAuth\migrations',
],
],
],
];
return [
'components' => [
'apiTokens' => [
'class' => \Kakadu\Yii2JwtAuth\ApiTokenService::class,
'secretKey' => '', // set in main-local.php or yii-params.domainSecretKey
'issuer' => 'you-domain-name', // or yii-params.domain
'audience' => ['you-domain-name', 'second-domain-name'], // or yii-params.domain
'audienceSecrets' => [
'you-domain-name' => '', // or yii-params.domainSecretKey
'second-domain-name' => '', // or yii-params.secondDomainSecretKey
],
'seamlessLogin' => false,
],
],
];
class AuthController extends yii\rest\Controller
{
public function actionSignUp()
{
// After create user $newUser
// Same actions for login url
$tokens = \Yii::$app->apiTokens->create($newUser->id, ['someField' => 'someValue']);
\Kakadu\Yii2JwtAuth\JwtBearerAuth::addJwtToHeader(\Yii::$app->response, $tokens);
}
public function actionSignIn()
{
// After verify user login and password
$tokens = \Yii::$app->apiTokens->create($user->id, ['someField' => 'someValue']);
\Kakadu\Yii2JwtAuth\JwtBearerAuth::addJwtToHeader(\Yii::$app->response, $tokens);
}
/**
* Autologin, if access token expired and refresh token not expired.
* This action needed only if 'seamlessLogin' set to false.
*/
public function actionRefreshTokens()
{
// Get from post or headers or ...
$accessToken = Yii::$app->request->post('access_token');
$refreshToken = Yii::$app->request->post('refresh_token');
// Convert to jwt token model
$jwtAccessToken = \Yii::$app->apiTokens->getJwtToken($accessToken);
$jwtRefreshToken = \Yii::$app->apiTokens->getJwtToken($refreshToken);
// Renew
$newTokens = \Yii::$app->apiTokens->renewJwtToken($jwtAccessToken, $jwtRefreshToken);
\Kakadu\Yii2JwtAuth\JwtBearerAuth::addJwtToHeader(\Yii::$app->response, $newTokens);
}
}