1 回答
TA贡献1886条经验 获得超2个赞
yii/web/user
enableAutoLogin:如果未登录,则会从cookie中登录
autoRenewCookie:
如果登录了,则会使用renewIdentityCookie更新cookie的expire过期时间.确保cookie的过期时间是保持一直最后的时
间.并保存到response的cookie里..如果是false,过期时间则按登录的时候开始计算,否则按最后访问的时间计算
init
1.组件初始化的时候,会打开session,
2.renewAuthStatus 如果用户已经登录,会检查authTimeout.如果超时则登出,但不销毁session
3.loginByCookie 如果enableAutoLogin而且用户是guest,则会从cookie中登录用户,如果已经登录则会更新过期时间
loginByCookie 和login的区别
开启自动登录的话.会执行loginByCookie触发的EVENT_BEFORE_LOGIN和EVENT_AFTER_LOGIN事件的第二个参数为true..会验证validateAuthKey
---------------常用函数----------------------------
login
logout
checkAccess
getId
getIdentity
-----------------------------------------------------------------
登录
1.session_regenerate_id(true); 如果设置为true,则更变当前session_id的值,并清空当前session数组..默认是false,调用的时候会更改当前session_id的值,并保留session数组中的值。
2.设置identity
3.设置idVar到session中
4.设置authTimeoutVar到session
5.使用sendIdentityCookie更新cookie中的过期时间
登出
1.如果authTimeout存在,则会检查session中的authTimeoutVar是否超时,如果超时则登出删除cookie,和Identity = null但是不销毁session;
2.logout(true),则会销毁session
检查是否登录
getIsGuest 从session中获取idVar.如果存在则写入Identity
- 1 回答
- 0 关注
- 799 浏览
添加回答
举报