Yii:在没有登录页面的情况下处理登录
我正在使用基于服务器的身份验证,因此我尝试在Yii中实现一个自定义登录系统。为了学习该系统,我尝试创建一个虚拟身份验证类,该类将自动登录用户。我在配置中包含了这个类,但我不知道如何让用户登录 是否有一种方法可以在首次使用应用程序时自动登录(如创建会话时),或者有更好的方法来实现这一点 其基础是自定义身份验证类:Yii:在没有登录页面的情况下处理登录,yii,Yii,我正在使用基于服务器的身份验证,因此我尝试在Yii中实现一个自定义登录系统。为了学习该系统,我尝试创建一个虚拟身份验证类,该类将自动登录用户。我在配置中包含了这个类,但我不知道如何让用户登录 是否有一种方法可以在首次使用应用程序时自动登录(如创建会话时),或者有更好的方法来实现这一点 其基础是自定义身份验证类: class MyAuthentication extends CApplicationComponent implements IUserIdentity {
class MyAuthentication
extends CApplicationComponent
implements IUserIdentity {
private $_username = '';
private $_authenticated = False;
...
public function authenticate()
{
$this->_username = 'exampleUser';
$this->_authenticated = True;
return True;
}
public function getIsAuthenticated()
{
return $this->_authenticated;
}
看来你很接近了。在您的示例中,类似这样的内容应该适用:
class UserIdentity extends CUserIdentity
{
private $_username = '';
private $_authenticated = FALSE;
public function authenticate()
{
$this->_username = 'exampleUser';
$this->_authenticated = TRUE;
return $this->_authenticated;
}
public function getIsAuthenticated()
{
return $this->_authenticated;
}
}
看来你很接近了。在您的示例中,类似这样的内容应该适用:
class UserIdentity extends CUserIdentity
{
private $_username = '';
private $_authenticated = FALSE;
public function authenticate()
{
$this->_username = 'exampleUser';
$this->_authenticated = TRUE;
return $this->_authenticated;
}
public function getIsAuthenticated()
{
return $this->_authenticated;
}
}
为控制器创建筛选器并检查用户是否经过身份验证。如果未验证,请验证用户。为控制器创建一个筛选器,并检查用户是否已验证。如果没有,请对用户进行身份验证。因为我的身份验证基于服务器端变量,所以我能够使用accessRules数组的
表达式
功能来检查该变量是否为真。我编写了一个自定义类来帮助:
class User
{
public function is_authenticated()
{
return True;
}
}
并将我的规则更新为使用表达式检查而不是用户检查:
由于我的身份验证基于服务器端变量,因此我能够使用accessRules数组的
表达式
功能来检查该变量是否为真。我编写了一个自定义类来帮助:
class User
{
public function is_authenticated()
{
return True;
}
}
并将我的规则更新为使用表达式检查而不是用户检查: