PHP code example of zacksleo / yii2-oauth2

1. Go to this page and download the library: Download zacksleo/yii2-oauth2 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/ */

    

zacksleo / yii2-oauth2 example snippets



 'modules' => [
     'oauth2' => [
         'class' => 'filsh\yii2\oauth2server\Module',
         /* Fix Yii2 2.0.13+ Incompatible Issue
          * @see https://github.com/Filsh/yii2-oauth2-server/issues/132
          */
         'components' => [
            'request' => function () {
                return \filsh\yii2\oauth2server\Request::createFromGlobals();
            },
            'response' => [
                'class' => \filsh\yii2\oauth2server\Response::class,
            ],
         ],
         'tokenParamName' => 'access_token',
         'tokenAccessLifetime' => 3600 * 24 * 7,
         'storageMap' => [
             'user_credentials' => 'common\models\User',
             'access_token' => 'zacksleo\yii2\oauth2\common\models\storage\AccessToken',
         ],
         'grantTypes' => [
             'client_credentials' => [
                 'class' => 'OAuth2\GrantType\ClientCredentials',
                 'allow_public_clients' => false
             ],
             'user_credentials' => [
                 'class' => 'OAuth2\GrantType\UserCredentials',
             ],
             'refresh_token' => [
                 'class' => 'OAuth2\GrantType\RefreshToken',
                 'always_issue_new_refresh_token' => true,
             ],
             'authorization_code' => [
                 'class' => 'OAuth2\GrantType\AuthorizationCode',
                 '


  'modules' => [
      'oauth2' => [
          'class' => 'zacksleo\yii2\oauth2\backend\Module',
      ]
  ]




namespace api\modules\v1\controllers;

class TokenController extends \zacksleo\yii2\oauth2\api\controllers\TokenController
{

}


class ResourceController extends \zacksleo\yii2\oauth2\api\controllers\Oauth2Controller 
{

}




namespace common\models;

use OAuth2\Storage\UserCredentialsInterface;
use yii;
use yii\db\ActiveRecord;
use yii\web\IdentityInterface;
use yii\behaviors\TimestampBehavior;
use filsh\yii2\oauth2server\exceptions\HttpException;
use zacksleo\yii2\oauth2\common\helpers\Predis;

/**
 * User model
 *
 * @property integer $id
 * @property string $phone
 * @property string $created_at
 * @property string $updated_at
 * @property string $union_id
 */
class User extends ActiveRecord implements IdentityInterface, UserCredentialsInterface
{
    /**
     * @inheritdoc
     */
    public static function findIdentity($id)
    {
        return static::findOne($id);
    }

    /**
     * @inheritdoc
     */
    public static function findIdentityByAccessToken($token, $type = null)
    {
        $oauthAccessToken = Predis::getInstance()->getClient()->getToken($token);
        if (empty($oauthAccessToken)) {
            throw new yii\web\UnauthorizedHttpException('Unauthorized');
        }
        $model = static::findOne(['union_id' => $oauthAccessToken['union_id']]);
        return $model;
    }

    /**
     * Implemented for Oauth2 Interface
     * @param $username
     * @param $password
     * @return bool
     * @throws HttpException
     */
    public function checkUserCredentials($username, $password)
    {
    }

    /**
     * Implemented for Oauth2 Interface
     * @param $username
     * @return array
     */
    public function getUserDetails($username)
    {
     }

    /**
     * @inheritdoc
     */
    public function getId()
    {
        return $this->getPrimaryKey();
    }

    public function getUnionId()
    {
        return $this->union_id;
    }
}