作者 赵彬吉

update

... ... @@ -18,4 +18,6 @@ final class Common extends Enum
//端
const A='a';
const B='b';
const MANAGE_TOKEN = 'manage_token:';
}
... ...
... ... @@ -18,7 +18,6 @@ class LoginController extends BaseController
function login(Request $request, LoginLogic $logic)
{
if ($request->isMethod('POST')) {
$request->validate([
'mobile' => ['required', new Mobile()],
'password' => 'required',
... ... @@ -27,18 +26,14 @@ class LoginController extends BaseController
'password.required' => '请输入密码',
]);
$logic->login();
$data = $logic->login();
return $this->success();
}
if($logic->manage()){
return redirect(route('admin.home.white'));
}
return view('admin.login');
return $this->success($data);
}
public function logout(LoginLogic $logic)
{
return $logic->logout();
$logic->logout();
return $this->success();
}
}
... ...
... ... @@ -188,7 +188,7 @@ class RankDataController extends BaseController
'video_position' => 0,
];
$client = new Client([
'base_uri' => 'http://45.136.131.71:8000',
'base_uri' => 'http://rank.waimaoq.com',
'timeout' => '20'
]);
... ... @@ -208,7 +208,7 @@ class RankDataController extends BaseController
$data = [
'position' => 0,
];
$res = HttpUtils::get('http://45.136.131.71:8000/luminati_rank', $param);
$res = HttpUtils::get('http://rank.waimaoq.com/luminati_rank', $param);
if ($res) {
$res = Arr::s2a($res);
$data['position'] = $res['position'];
... ...
... ... @@ -5,7 +5,7 @@ namespace App\Http\Logic\Aside;
use App\Enums\Common\Common;
use App\Http\Logic\Logic;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Cache;
/**
* @notes: 逻辑层基类 控制器调用 统一返回 统一抛出异常
... ... @@ -18,12 +18,9 @@ class BaseLogic extends Logic
protected $side = Common::A;
protected $user = [];
public function __construct()
{
$this->requestAll = request()->all();
$this->user = Session::get('manage');
}
... ...
... ... @@ -2,10 +2,11 @@
namespace App\Http\Logic\Aside;
use App\Enums\Common\Common;
use App\Models\Manage\Manage;
use App\Models\Manage\LoginLog;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Session;
/**
... ... @@ -26,7 +27,7 @@ class LoginLogic extends BaseLogic
public function login()
{
$manage = $this->model->where('mobile', $this->requestAll['mobile'])->first();
$manage = $this->model->select('id', 'name', 'password', 'token')->where('mobile', $this->requestAll['mobile'])->first();
if (!$manage){
$this->fail('登录用户名不存在');
... ... @@ -37,21 +38,33 @@ class LoginLogic extends BaseLogic
if (!Hash::check($this->requestAll['password'], $manage->password)) {
$this->fail('登录密码不正确');
}
Session::put('manage', $manage->toArray());
if(!empty($manage['token'])){
//清除上一次用户缓存
Cache::pull(Common::MANAGE_TOKEN . $manage['token']);
}
//生成新token
$token = md5(uniqid().$manage['id']);
//存储缓存
$manage['token'] = $token;
Cache::add(Common::MANAGE_TOKEN . $token,$manage);
//更新用户信息
$manage->token = $token;
$res = $manage->save();
if(!$res){
$this->fail('系统错误,请联系管理员');
}
LoginLog::addLog($manage->id);
return $this->success();
return $this->success($manage->toArray());
}
public function logout(){
Session::forget('manage');
return redirect(route('admin.login'));
Cache::pull(request()->header('token'));
return $this->success();
}
public static function manage($field = ''){
$manage = Session::get('manage');
$manage = Manage::find(1)->toArray();
$manage = Cache::get(Common::MANAGE_TOKEN . request()->header('token'));
$manage = Manage::find($manage['id'] ?? 0);
if($field){
return $manage[$field] ?? '';
}
... ...
... ... @@ -6,11 +6,9 @@ use App\Enums\Common\Code;
use App\Http\Logic\Aside\LoginLogic;
use App\Models\Manage\Group;
use App\Models\Manage\Manage;
use App\Models\Manage\Menu;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Str;
class LoginAuthMiddleware
... ... @@ -26,11 +24,7 @@ class LoginAuthMiddleware
{
$manage = LoginLogic::manage();
if (!$manage) {
if($request->ajax()){
return response(['status'=> Code::USER_ERROR,'msg'=>'当前用户未登录']);
}else{
return redirect(route('admin.login.white'));
}
}
//权限
if($manage['id'] != Manage::ADMINISTRATOR_ID){ //排除超级管理员
... ... @@ -38,11 +32,7 @@ class LoginAuthMiddleware
if(!Str::endsWith($route, '.white')){ //排除白名单路由
$routes = Group::getRouteByGroupId($manage['gid']);
if(!in_array($route, $routes)){
if($request->ajax()){
return response(['status'=> Code::USER_ERROR,'msg'=>'无权限']);
}else{
return response(view('admin/no_auth'));
}
}
}
}
... ...
... ... @@ -21,7 +21,6 @@ class LoginLog extends Base
public function addLog($manage_id){
$log = new self();
$log->manage_id = $manage_id;
$log->session_id = Session::getId();
$log->ip = request()->ip();
$log->save();
}
... ...
... ... @@ -24,7 +24,7 @@ class ManageLog extends Base
$log = new self();
$log->title = $menu ? $menu['title'] : '';
$log->manage_id = LoginLogic::manage('id') ? : 0;
$log->manage_id = LoginLogic::manage('id') ?: 0;
$log->route_name = request()->route()->getName();
$log->action = request()->path();
$log->method = request()->method();
... ...
... ... @@ -6,8 +6,7 @@ use \Illuminate\Support\Facades\Route;
use \App\Http\Controllers\Aside;
//必须登录验证的路由组
Route::middleware(['web','accesstoken'])->group(function (){ //admin用渲染默认要加上web的中间件
Route::middleware(['aloginauth'])->group(function () {
Route::middleware(['aloginauth'])->group(function () {
Route::get('/', [Aside\IndexController::class, 'index'])->name('admin.home.white');
Route::get('/logout', [Aside\LoginController::class, 'logout'])->name('admin.logout.white');
//会员相关
... ... @@ -155,27 +154,27 @@ Route::middleware(['web','accesstoken'])->group(function (){ //admin用渲染é»
Route::get('/', [\App\Http\Controllers\Aside\TemplateController::class, 'index'])->name('admin.template');
Route::post('/edit', [\App\Http\Controllers\Aside\TemplateController::class, 'save'])->name('admin.template_edit');
Route::post('/insert', [\App\Http\Controllers\Aside\TemplateController::class, 'save'])->name('admin.template_insert');
Route::delete('/delete/{id}', [\App\Http\Controllers\Aside\TemplateController::class, 'delete'])->where('id','\d+')->name('admin.template_delete');
Route::delete('/delete/{id}', [\App\Http\Controllers\Aside\TemplateController::class, 'delete'])->where('id', '\d+')->name('admin.template_delete');
Route::get('/html/{template_id}', [\App\Http\Controllers\Aside\TemplateController::class, 'html_index'])->where('template_id','\d+')->name('admin.template.html');
Route::post('/html/{template_id}/edit', [\App\Http\Controllers\Aside\TemplateController::class, 'html_edit'])->where('template_id','\d+')->name('admin.template_edit.html');
Route::post('/html/{template_id}/insert', [\App\Http\Controllers\Aside\TemplateController::class, 'html_insert'])->where('template_id','\d+')->name('admin.template_insert.html');
Route::delete('/html/{template_id}/delete/{id}', [\App\Http\Controllers\Aside\TemplateController::class, 'html_delete'])->where('template_id','\d+')->where('id','\d+')->name('admin.template_delete.html');
Route::get('/html/{template_id}', [\App\Http\Controllers\Aside\TemplateController::class, 'html_index'])->where('template_id', '\d+')->name('admin.template.html');
Route::post('/html/{template_id}/edit', [\App\Http\Controllers\Aside\TemplateController::class, 'html_edit'])->where('template_id', '\d+')->name('admin.template_edit.html');
Route::post('/html/{template_id}/insert', [\App\Http\Controllers\Aside\TemplateController::class, 'html_insert'])->where('template_id', '\d+')->name('admin.template_insert.html');
Route::delete('/html/{template_id}/delete/{id}', [\App\Http\Controllers\Aside\TemplateController::class, 'html_delete'])->where('template_id', '\d+')->where('id', '\d+')->name('admin.template_delete.html');
Route::get('/html/type', [\App\Http\Controllers\Aside\TemplateController::class, 'html_type'])->name('admin.template_type.html');
// 自定义块,模板块
Route::get('/chunk/lists', [\App\Http\Controllers\Aside\TemplateController::class, 'chunk_lists'])->name('admin.template.chunk_lists');
Route::post('/chunk/create', [\App\Http\Controllers\Aside\TemplateController::class, 'chunk_save'])->name('admin.template.chunk_create');
Route::post('/chunk/update', [\App\Http\Controllers\Aside\TemplateController::class, 'chunk_save'])->name('admin.template.chunk_update');
Route::delete('/chunk/delete/{chunk_id}', [\App\Http\Controllers\Aside\TemplateController::class, 'chunk_delete'])->where('chunk_id','\d+')->name('admin.template.chunk_delete');
});
Route::delete('/chunk/delete/{chunk_id}', [\App\Http\Controllers\Aside\TemplateController::class, 'chunk_delete'])->where('chunk_id', '\d+')->name('admin.template.chunk_delete');
});
});
//无需登录验证的路由组
Route::group([], function () {
Route::group([], function () {
Route::any('/login', [Aside\LoginController::class, 'login'])->name('admin.login.white');
Route::any('/image/{hash}/{w?}/{h?}', [\App\Http\Controllers\File\ImageController::class, 'index'])->name('image_show');
Route::any('/file/{hash}', [\App\Http\Controllers\File\FileController::class, 'index'])->name('file_show');
});
});
... ...