Pro/application/admin/controller/Login.php
2026-01-28 15:54:52 +08:00

89 lines
3.0 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace app\admin\controller;
use think\Session;
use think\Controller;
use ValidateCode\ValidateCode;
use think\Request;
use think\Db;
class Login extends Controller{
/**
* 登录页面
*/
public function index(){
$user_info = Session::get('user_info');
if(!empty($user_info)){
$this->redirect('/',302);
}
return $this->fetch();
}
/**
* 处理登录
*/
public function do_login(){
if(Request::instance()->post()){
// 接收表单提交过来的数据,做数据验证
$admin = Request::instance()->post('username');
$password = Request::instance()->post('password');
$code = Request::instance()->post('code');
if(!isset($admin) || empty($admin)){
die(json_encode(['code'=>0,'msg'=>'用户名不能为空!']));
}
if(!isset($password) || empty($password)){
die(json_encode(['code'=>0,'msg'=>'密码不能为空!']));
}
if(!isset($code) || empty($code)){
die(json_encode(['code'=>0,'msg'=>'验证码不能为空!']));
}
// 从session里拿到验证码进行验证码对比
$validate_code = Session::get('validate_code');
if($code != $validate_code){
die(json_encode(['code'=>0,'msg'=>'验证码错误!']));
}
// 查询客户信息,判断用户名和密码是否正确
$admin_info = Db::name('admin')->where('admin',$admin)->find();
if(empty($admin_info)){
die(json_encode(['code'=>0,'msg'=>'用户不存在!']));
}
if(think_ucenter_md5($password,UC_AUTH_KEY) != $admin_info['password']){
die(json_encode(['code'=>0,'msg'=>'密码错误!']));
}
if($admin_info['status'] != 1){
die(json_encode(['code'=>0,'msg'=>'该账户未激活!']));
}
$last_login_info = Db::name('admin')->where(array('id' => $admin_info['id']))->field(['last_login_time','last_login_ip'])->find();
Session::set('last_login_info',$last_login_info);
Db::name('admin')->where(array('id' => $admin_info['id']))->update(array('last_login_time' => time(), 'last_login_ip' => getIP()));
$user_info = Db::name('admin')->where('id',$admin_info['id'])->find();
Session::set('user_info',$user_info);
insertAdminLog('登录');
die(json_encode(['code'=>1,'msg'=>'登录成功!']));
}else{
die(json_encode(['code'=>0,'msg'=>'操作错误!']));
}
}
/**
* 登出
*/
public function logout(){
insertAdminLog('退出');
Session::set('user_info',"");
Session::set('last_login_info',"");
$this->redirect('/login/index',302);
}
/**
* 验证码
*/
public function validateCode(){
$validate = new ValidateCode();
$validate->doimg();
}
}