2017 © Pedro Peláez
 

yii2-extension yii2-jwt

Yii2-jwt is a set of functionality to work with JSON Web Tokens

image

asinfotrack/yii2-jwt

Yii2-jwt is a set of functionality to work with JSON Web Tokens

  • Tuesday, February 27, 2018
  • by asinfotrack
  • Repository
  • 5 Watchers
  • 1 Stars
  • 137 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 303 % Grown

The README.md

Yii2-jwt

Yii2-jwt is a set of functionality to work with JSON Web Tokens. It is a wrapper around the JWT extension firebase/php-jwt which can be attached to any class as a trait. The data of tokens is encapsulated in helper classes and represented as arrays, as it is usual within Yii2-applications., (*1)

Also check out the repository of the firebase jwt extension., (*2)

Installation

Basic installation

The preferred way to install this extension is through composer., (*3)

Either run, (*4)

$ composer require asinfotrack/yii2-jwt

or add, (*5)

"asinfotrack/yii2-jwt": "~0.8.0"

to the require section of your composer.json file., (*6)

Usage

Simply add the JwtTokenTrait to any class you wish to create tokens for. Usually this is a user class., (*7)

class User extends \yii\db\ActiveRecorde implements \yii\web\IdentityInterface
{

    //...

    use JwtTokenTrait;

    //...

    /**
     * @inheritdoc
     */
    public static function findIdentityByAccessToken($token, $type=null)
    {
        /* @var $result \asinfotrack\yii2\jwt\helpers\JwtTokenDecodingResult */

        try {
            //try decoding the token
            $result = $this->decodeJwtToken($token, Yii::$app->params['myJwtTokenSecret'], true, true);
        } catch (JwtException $e) {
            //check if token is valid but expired
            if ($e instanceof \asinfotrack\yii2\jwt\exceptions\JwtExpiredException) {
                //delete expired token from db
            }

            //return null to signal user could not be found
            return null;
        }

        //token was valid so we can extract the id
        $modelId = $result->getJti();

        //return the user model or null if not found
        return static::findOne($modelId);
    }

    //...

    /**
     * Create a token for the current user model instance. You might want to persist
     * the result in a token table to keep track of the tokens created.
     *
     * @return string the created token
     */
    protected function createTokenForUser()
    {
        /* @var $request \asinfotrack\yii2\jwt\helpers\JwtTokenIssueRequest */

        //optional request if additional data is required (eg user roles)
        $userRoles = array_keys(Yii::$app->authManager->getRolesByUser($this->id));
        $request = new JwtIssueRequest();
        $request->setPayloadEntry('roles', $userRoles);

        return $this->createJwtToken($this->id, Yii::$app->params['myJwtTokenSecret'], $request);
    }

    //...

}

Changelog

[v0.8.0] (work in progress)
  • main classes in a stable condition
  • further features will be added in a backwards-compatible way from here on
  • all breaking changes will lead to a new minor version.

The Versions

27/02 2018

dev-master

9999999-dev

Yii2-jwt is a set of functionality to work with JSON Web Tokens

  Sources   Download

MIT

The Requires

 

auth jwt yii2 helper token

27/02 2018

0.8.0

0.8.0.0

Yii2-jwt is a set of functionality to work with JSON Web Tokens

  Sources   Download

MIT

The Requires

 

auth jwt yii2 helper token