專案登陸功能的總體架設

2021-08-05 22:10:05 字數 1741 閱讀 3351

登陸功能是專案中最基本的功能,說簡單也簡單,可是也不是那麼簡單,還是架構問題吧!

登陸是乙個專案的入口,是基礎,我們應該怎麼架構這個問題,下面看看我的方法:

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次...