Yii2自动登录与cookie

时间:2015-11-23 07:17:08

标签: yii2 autologin

我已经设置了基于cookie的登录,就像那个人in this thread一样。我可以看到auth键总是正确生成。我可以在DB和cookie中看到它。 Cookie也有适当的到期日期。不过,我从未自动登录过。我设置了public function select_all($table_name, $where){ $db_connect = new db_connect(); $con = $db_connect->connect(); if(!$con){ echo "Connection error"; }else{ $query = mysqli_query($con,"select * from ".$table_name." where ".$where." "); if(!$query){ echo "Error in your query".mysqli_error($query); }else{ $result = mysqli_fetch_array($query); return $result; } } } ,所有其他方法都是默认的。所以它应该工作。我读到某个地方,调用'enableAutoLogin' => true应该触发cookie登录,但事实并非如此。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

您是否设置了登录方式的持续时间? 方法User::login()有第二个参数名为“duration”。默认情况下为0。这意味着只要会话保持活动状态,身份信息就会存储在会话中。如果您想要自动登录,请设置持续时间> 0

答案 1 :(得分:0)

问题可能是由从Cookie中检索到的数据引起的。 User :: findIdentity中的$ id参数不是MongoId或字符串而是数组。最简单的解决方案是覆盖方法,例如:

public static function findIdentity($id)
{
if(!empty($id) && is_array($id))
$id = new \MongoId($id['$id']);
return static::findOne($id);
}