首页 > 其他 > 详细

Yii 2 —— 记住密码

时间:2016-11-16 03:19:32      阅读:186      评论:0      收藏:0      [点我收藏+]


Yii 2的登录页面提供了“记住密码”,这个功能最终是将相关信息保存在cookie中,从而实现自动登录的。

LoginForm的代码,校验密码的代码是这样的:

public function login()
 {
    
if ($this->validate()) {
        
return Yii::$app->user->login($this->getUser(),  $this->rememberMe ? 3600 * 24 * 30 : 0);
    
} else {
        
return false;
    
}
 }

 

红色那一行代码就是用来完成登录处理的,包括了最终完成记住密码的功能。这行代码有个细节需要注意,它是调用$app->user对象的login接口处理密码校验后的业务,但是接口的第一个参数,明显也是一个user,那么$app->user$this->getUser(),这两个user有什么不同?

 

$app->user,是web\User,用来处理用户登录相关功能的,譬如实现记住密码、自动登录、自动跳转等功能,这些功能对于大多数系统来说都是需要的,因此放在框架里处理比较合适。

 

$this->getUser,是一个Model,由用户自定义,当然,Yii2也提供了默认的User Model,主要是用来处理与密码校验有关的业务,这些算法往往是由框架使用者自己确定的,因此被框架剥离出来。

 

最终根据将登录信息保存到cookie中,是在web\User->switchIdentity()完成的。


本文出自 “rainman” 博客,请务必保留此出处http://lancelot.blog.51cto.com/393579/1873243

Yii 2 —— 记住密码

原文:http://lancelot.blog.51cto.com/393579/1873243

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!