UserIdentity.php 1.55 KB
<?php namespace app\wx\models;

use yii;
use yii\web\IdentityInterface;

/**
 * Class UserIdentity
 * @package app\wx\models
 */
class UserIdentity implements IdentityInterface
{
    /**
     * @var null
     */
    static $id = null;

    /**
     * @param int|string $id
     * @return  IdentityInterface
     */
    public static function findIdentity($id)
    {
        self::getIdFromSession();
        return new UserIdentity();
    }

    /**
     * @param mixed $token
     * @param null $type
     * @return  IdentityInterface
     */
    public static function findIdentityByAccessToken($token, $type = null)
    {
        return self::getIdFromSession();
        return new UserIdentity();
    }

    /**
     * @return  int|string $id
     */
    public function getId()
    {
        return self::getIdFromSession();
    }

    /**
     *不启动自动登录,AuthKey 是用来设定到cookie的字符串
     *
     */
    public function getAuthKey()
    {
        return "";
    }

    /**
     * 不启动自动登录,这里默认返回true
     * @param string $authKey
     */
    public function validateAuthKey($authKey)
    {
        return true;
    }

    /**
     * @return mixed|null
     */
    protected static function getIdFromSession()
    {
        if (null === self::$id){
            $user = \Yii::$app->getUser();
            $session = Yii::$app->getSession();
            $id = $session->getHasSessionId() || $session->getIsActive() ? $session->get($user->idParam) : null;
            self::$id = $id;
        }

        return self::$id;
    }
}