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 關注
- 830 瀏覽
添加回答
舉報