我有一个用户需要通过 OTP 验证他的帐户。为了进行身份验证,他填写了他的 OTP 并验证了手机号码。一旦通过身份验证,我想强制他登录。也就是说,他仍然不必手动登录。所以,对于这种形式,我基本上有:
if($model->validate())
{
// Force Login
$this->redirect(array('/site/index'));
}
只使用他的一个凭据(即他的手机号码),我需要强制他登录。我该怎么做?
我有一个用户需要通过 OTP 验证他的帐户。为了进行身份验证,他填写了他的 OTP 并验证了手机号码。一旦通过身份验证,我想强制他登录。也就是说,他仍然不必手动登录。所以,对于这种形式,我基本上有:
if($model->validate())
{
// Force Login
$this->redirect(array('/site/index'));
}
只使用他的一个凭据(即他的手机号码),我需要强制他登录。我该怎么做?
该过程在以下文档中进行了说明CWebUser
:
CWebUser::login
登录用户,并将用户浏览器重定向到returnUrl
.您应该已经有一个实现IUserIdentity
. 通常这是一个派生自 的类CUserIdentity
,它在构造时采用用户名和密码。这里有很大的自由度:您可以决定不从CUserIdentity
您自己的自定义身份类派生并使用您希望的任何身份验证方式,或者您可以派生CUserIdentity
并覆盖该authenticate
方法以使用 OTP 进行身份验证。
该过程将与上述完全相同:
$identity = new MyIdentity(...); // you decide what params it takes
if ($identity->authenticate()) {
$user = Yii::app()->user;
$user->login($identity);
$this->redirect($user->returnUrl);
}