作者 lyh

gx

... ... @@ -150,7 +150,7 @@ class BaseController extends Controller
$log = config('logging.operator_log');
if(isset($log) && $log['log'] == true){
if(empty($log['action']) || (strpos($log['action'],$this->request->route()->getName()) === false)){
Common::set_user_log(['model'=>$this->request->route()->getName(),'remark'=>'请求的参数:param = '.json_encode($this->param),'operator_id'=>$this->uid]);
Common::set_user_log(['model'=>$this->request->route()->getName(),'remark'=>'请求的参数:param = '.json_encode($this->param),'operator_id'=>$this->uid,'type'=>isset($this->user['type']) ?? 0]);
}
}
return true;
... ...
... ... @@ -10,6 +10,7 @@ use App\Http\Logic\Bside\User\UserLogic;
use App\Http\Logic\Bside\User\UserLoginLogic;
use App\Models\Project\Project;
use App\Models\Project\Project as ProjectModel;
use App\Models\Service\Service;
use App\Models\SmsLog;
use App\Models\User\ProjectMenu as ProjectMenuModel;
use App\Models\User\ProjectRole as ProjectRoleModel;
... ... @@ -54,12 +55,17 @@ class ComController extends BaseController
*/
public function autologin(UserLoginLogic $logic, EncryptUtils $encrypt)
{
$data = $encrypt->unlock_url($this->param['code'], 'v6.globalso.com');
$serviceSettingModel = new Service();
$info = $serviceSettingModel->read(['type'=>4]);
if($info === false){
$this->response('当前访问地址不存在',Code::USER_ERROR);
}
$data = $encrypt->unlock_url($this->param['code'], $info['values']);
$data = json_decode($data, true);
if(empty($data['project_id'])){
if(!isset($data['project_id']) || !isset($data['user_id'])){
$this->response('无效Code',Code::USER_ERROR);
}
$res = $logic->autologin($data['project_id']);
$res = $logic->autologin($data);
$this->response('请求成功',Code::SUCCESS, $res);
}
... ...
... ... @@ -88,9 +88,16 @@ class LoginLogic extends BaseLogic
$encrypt = new EncryptUtils();
$data = [
'domain'=>$info['values'],
'autologin_code' => $encrypt->lock_url(json_encode(['project_id'=>$this->param['project_id']]),'v6.globalso.com'),
'remark'=>'自动登录地址和code',
];
//获取超级管理员登录
if(isset($this->param['project_id']) && !empty($this->param['project_id'])){
$data['autologin_code'] = $encrypt->lock_url(json_encode(['project_id'=>$this->param['project_id']]),$info['values']);
}
//使用用户登录
if(isset($this->param['user_id']) && !empty($this->param['user_id'])){
$data['autologin_code'] = $encrypt->lock_url(json_encode(['user_id'=>$this->param['user_id']]),$info['values']);
}
//获取当前超级管理员的token
return $this->success($data);
}
... ...
... ... @@ -63,14 +63,20 @@ class UserLoginLogic
* @author zbj
* @date 2023/7/25
*/
public function autologin($project_id)
public function autologin($data)
{
$has_user = User::where('project_id', $project_id)->orderBy('id', 'asc')->select(['id','mobile','role_id','token','name','project_id'])->first();
if (empty($has_user->id)) {
Common::set_user_login(['user_id'=>0, 'ip'=>request()->ip(), 'project_id' => $this->param['project_id'] ?? 0,'remark' => '该项目未找到注册账号']);
//项目自动登录
if(isset($data['project_id']) && !empty($data['project_id'])){
$has_user = $this->model->read(['project_id'=>$data['project_id'],'role_id'=>0]);
}
//根据特定用户自动登录
if(isset($data['user_id']) && !empty($data['user_id'])){
$has_user = $this->model->read(['id'=>$data['user_id']]);
}
if ($has_user === false) {
$this->fail('该项目未找到注册账号');
}
$info = $this->verifyRole($has_user->toArray());
$info = $this->verifyRole($has_user);
if(!Cache::get($info['token'])){
//生成新token
$token = md5(uniqid().$info['id']);
... ...