登陸功能是專案中最基本的功能,說簡單也簡單,可是也不是那麼簡單,還是架構問題吧!
登陸是乙個專案的入口,是基礎,我們應該怎麼架構這個問題,下面看看我的方法:
1.毫無疑問,是我們的登陸的控制器
public function dologin()
$manager_model = d('manager');
$info = array('last_login_ip' => get_client_ip(), 'last_login_time' => datetime(), 'relogin' => 0);
$manager_model->updatemanagerbyid($manager['manager_id'], $info);
// 設定會話資料
session('manager', $manager);
session('manager_id', $manager['manager_id']);
session('menu_list', null);
$this->ajaxresponse(0, '登入成功!');
}
2.涉及到我們登陸的服務層
public function dologinpassword($username, $password)
if ( empty($password) )
$login_log_model = d('loginlog');
$fail_count = $login_log_model->getloginfailnum($username, day());
if ( $fail_count >= c('max_login_fail_number') )
$manager_model = d('manager');
$manager = $manager_model->getmanagerbyusername($username);
if ( empty($manager) )
$log = array('username' => $username, 'password' => $password, 'ip' => get_client_ip(),
'ctime' => datetime());
if ( !password_verify($password, $manager['password']) )
// ip位址檢查
if ( !empty($manager['allow_ip'])
&& !$this->isipallow(get_client_ip(), $manager['allow_ip']) )
// 新增登入日誌
$log['result'] = 'success';
$log['message'] = '登入成功';
$login_log_model->addmanagerloginlog($log);
// 賬號未啟用算登入成功
if ( $manager['active'] != 'y' )
return array(0, '登入成功!', $manager);
}
3.在服務層我們還需要乙個功能就是確定當前使用者的錯誤登陸次數,(這個我是在model控制)
public function getloginfailnum($username, $day = null)
php專案登陸功能
登陸幾乎是每個系統必備的,在這裡和大家分享兩種常用的登陸功能的設計。一 session登陸 網頁登陸一般是將登陸資訊存放在 session 中,最簡單的登陸,當驗證使用者名稱密碼成功後,將使用者的id儲存在 session中。例如 session login user user id 這時一般會有乙...
登陸功能(四)
繼續接著第乙個hello django的更新。接下來,做乙個發布會管理系統,根據書中介紹一步一步實現所有功能,本文為第一篇。django pagestitle head middleware django.middleware.security.securitymiddleware django.c...
完成登陸功能
效果展示 登陸功能講解 在sql表中,last lock time表示上次鎖定的時間 當使用者在介面輸入密碼錯誤時,其login fail count次數就會加1 當次數到達3的時候 則會鎖定該使用者 提示使用者5分鐘後再登陸,當使用者登陸成功的時候 就會將其login fail count設為0次...