谁一开始就是大神?

自动登录没有用啊![2.0]

不是就这样就可以了吗?Yii::$app->user->login($user, $this->rememberMe ? 3600 * 24 * 10 : 0)
我勾选记住登录,名字是_identity的cookie是有的,这是自动登陆的凭证吧?
我的怎么没用,还要做其他什么操作吗?
我用的就是Yii自带的那套。

user的配置:

'user' => [
    'identityClass' => 'common\models\User',
    'enableAutoLogin' => true,
    'loginUrl' => ['user/login', 'ref' => 1],
    'authTimeout' => 1800,
],

User实现的IdentityInterface接口代码如下:

/**
 * 通过user id查找身份
 * 
 * @param user_id $id        	
 * @return Ambigous <\yii\db\static, NULL>
 */
public static function findIdentity($id) 
{
	return static::findOne ( [ 
			'user_id' => $id,
			'enabled' => self::STATE_ENABLED 
	] );
}

/**
 * 用token查找身份,这个方法暂时没有用处
 * 
 * @param string $token        	
 * @param string $type        	
 */
public static function findIdentityByAccessToken($token, $type = null) 
{
	return null;
}

/**
 * 取得可用用来验证用户身份的KEY,每个用户的key需要唯一
 * 
 * @return string
 */
public function getAuthKey() 
{
	return null;
}

/**
 * 取user id
 * 
 * @return number
 */
public function getId() 
{
	return $this->user_id;
}

/**
 * 验证authKey
 * 
 * @param string $authKey        	
 * @return boolean
 */
public function validateAuthKey($authKey) 
{
	return $this->getAuthKey () === $authKey;
}

搞定:

    $cookie->value = json_encode([
        $identity->getId(),
        $identity->getAuthKey(),
        $duration,
    ], JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);

应用配置里面,对component[‘user’]的配置代码贴一下。
如果是你们自己实现的Identity类,把实现IdentityInterface的类代码也需要贴一下。这样才好方便你诊断问题。
我的没修改过,系统默认就支持记住14天。
确认下浏览器开启了cookie
回复见下面,莫名其妙提交两遍..

赞(0) 打赏
未经允许不得转载:菜鸟之家 » 自动登录没有用啊![2.0]

评论 抢沙发

登录

找回密码

注册