init: 从宝塔同步到 Gitea
This commit is contained in:
Executable
+97
@@ -0,0 +1,97 @@
|
||||
<?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);
|
||||
|
||||
// 生成login_token用于WebSocket连接验证
|
||||
$login_token = md5($admin_info['id'] . time() . uniqid());
|
||||
Db::name('admin')->where(array('id' => $admin_info['id']))->update(array(
|
||||
'last_login_time' => time(),
|
||||
'last_login_ip' => getIP(),
|
||||
'login_token' => $login_token
|
||||
));
|
||||
|
||||
$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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user