7 changed files with 173 additions and 51 deletions
@ -0,0 +1,62 @@ |
|||||
|
<?php |
||||
|
declare (strict_types = 1); |
||||
|
|
||||
|
namespace app\model; |
||||
|
|
||||
|
use think\facade\Session; |
||||
|
use think\Model; |
||||
|
|
||||
|
/** |
||||
|
* @mixin \think\Model |
||||
|
*/ |
||||
|
class AdminUser extends Model |
||||
|
{ |
||||
|
/** |
||||
|
* 管理员登陆 |
||||
|
* @param $data |
||||
|
* @return array |
||||
|
* @throws \think\db\exception\DataNotFoundException |
||||
|
* @throws \think\db\exception\DbException |
||||
|
* @throws \think\db\exception\ModelNotFoundException |
||||
|
*/ |
||||
|
public static function login($data) |
||||
|
{ |
||||
|
// 根据用户名查询用户信息 |
||||
|
$AdminUser = new AdminUser(); |
||||
|
|
||||
|
$user = $AdminUser |
||||
|
->where('account_number', $data['account_number']) |
||||
|
->field('id,account_number,avatar,password,salt,status') |
||||
|
->find(); |
||||
|
|
||||
|
try { |
||||
|
if (!$user) throw new \Exception('管理员账号不存在'); |
||||
|
if ($user['status'] != 1) throw new \Exception('账号已被停用'); |
||||
|
|
||||
|
// 使用相同的盐值对输入密码进行哈希验证 |
||||
|
$hashedPassword = $AdminUser->generateHashedPassword($data['password'], $user->salt); |
||||
|
|
||||
|
if ($user->password !== $hashedPassword) throw new \Exception('密码错误'); |
||||
|
|
||||
|
# 缓存用户信息 |
||||
|
$login_user_data = $user->toArray(); |
||||
|
unset($login_user_data['password'],$login_user_data['salt'],$login_user_data['status']); |
||||
|
Session::set('login_user_data',$login_user_data); |
||||
|
|
||||
|
return ['status' => 1, 'msg' => '登陆成功', 'data' => $login_user_data]; |
||||
|
} catch (\Exception $e) { |
||||
|
return ['status' => 0, 'msg' => $e->getMessage()]; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 生成密码 |
||||
|
* @param $password |
||||
|
* @param $salt |
||||
|
* @return string |
||||
|
*/ |
||||
|
private function generateHashedPassword($password,$salt) |
||||
|
{ |
||||
|
return md5(md5($password) . md5($salt)); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,21 @@ |
|||||
|
<?php |
||||
|
declare (strict_types = 1); |
||||
|
|
||||
|
namespace app\model; |
||||
|
|
||||
|
use think\Model; |
||||
|
|
||||
|
/** |
||||
|
* @mixin \think\Model |
||||
|
*/ |
||||
|
class AgentUser extends Model |
||||
|
{ |
||||
|
// |
||||
|
|
||||
|
public static function login() |
||||
|
{ |
||||
|
|
||||
|
|
||||
|
|
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue