tapi/app/controller/admin/auth/AuthController.php
2025-08-28 23:02:25 +08:00

66 lines
1.7 KiB
PHP

<?php
namespace app\controller\admin\auth;
use app\BaseController;
use app\entity\SysUser;
use app\entity\SysUserClient;
use app\enum\UserLoginEnum;
use app\service\admin\LoginService;
use think\db\exception\DataNotFoundException;
use think\db\exception\DbException;
use think\db\exception\ModelNotFoundException;
use think\response\Json;
/**
* 用户Auth控制器
*/
class AuthController extends BaseController
{
/**
* 查询用户信息
* @return Json
* @throws DataNotFoundException
* @throws DbException
* @throws ModelNotFoundException
*/
public function user(): Json
{
$user = SysUser::findOrFail($this->auth->userId);
$data = $user->append(['authorities', 'roles'])->toArray();
return $this->writeSuccess('', $data);
}
/**
* 退出登录
* @return Json
*/
public function logout(): Json
{
$srv = new LoginService();
$srv->logout($this->request, $this->auth->getUser());
return $this->writeSuccess('退出成功');
}
public function unlock()
{
$client = $this->request->getClient();
$lock_password = $this->request->post('lock_password');
$clientModel = SysUserClient::where([
'client_id' => $client->id,
'client_name'=> $client->name,
'user_id' => $this->auth->userId,
])->find();
if($clientModel) {
if($clientModel['lock_password'] !== $lock_password) {
return $this->writeSuccess('密码错误');
}
$clientModel->save(['is_lock'=>0,'lock_password'=>'','lock_time'=>null]);
}
return $this->writeSuccess('解锁成功');
}
}