simaocoutinho / admin
由 AdminLTE 提供的 Admin Dashboard
0.4.0
2021-10-12 01:30 UTC
README
安装
安装 Jetstream
点击链接进行安装: https://jetstream.laravel.net.cn/2.x/installation.html
安装 LaravelDebugbar
composer require barryvdh/laravel-debugbar --dev
安装 AdminStarterCode
composer require simaocoutinho/admin
发布公共资源
根据项目变化的资源
php artisan vendor:publish --tag="admin-public"
发布视图
php artisan vendor:publish --tag="admin-views" --force
在文件: config/filesystem.php
替换
'public' => [ 'driver' => 'local', 'root' => storage_path('app/public'), 'url' => env('APP_URL').'/storage', 'visibility' => 'public', ],
为
'public' => [ 'driver' => 'local', 'root' => public_path('uploads'), 'url' => env('APP_URL').'/uploads', 'visibility' => 'public', ],
仅开发者调试使用
在文件: config/app.php
替换
'debug' => (bool) env('APP_DEBUG', false),
为
'debug' => value(function() { if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] == 'IP') return true; return false; }),
覆盖页面过期时的重定向
在文件: app/Exceptions/Handler.php
添加
public function register() { ... $this->renderable(function (\Exception $e) { if ($e->getPrevious() instanceof \Illuminate\Session\TokenMismatchException) { return redirect()->route('login'); }; }); }
覆盖登录与注册重定向
链接: https://news.laravel.net.cn/override-login-redirects-in-jetstream-fortify
创建: app/Http/Responses/LoginResponse.class
复制
namespace App\Http\Responses; use Auth; use Laravel\Fortify\Contracts\LoginResponse as LoginResponseContract; class LoginResponse implements LoginResponseContract { /** * @param $request * @return mixed */ public function toResponse($request) { if (Auth::user()->type == 'client') { return redirect()->route('home'); } else { return redirect()->route('dashboard'); } } }
创建: app/Http/Responses/RegisterResponse.class
复制
namespace App\Http\Responses; use Auth; use Laravel\Fortify\Contracts\RegisterResponse as RegisterResponseContract; class RegisterResponse implements RegisterResponseContract { public function toResponse($request) { if (Auth::user()->type == 'client') { return redirect()->route('home'); } else { return redirect()->route('dashboard'); } } }
在文件: FortifyServiceProvider.class
添加
use App\Http\Responses\LoginResponse; use App\Http\Responses\RegisterResponse; use Laravel\Fortify\Contracts\LoginResponse as LoginResponseContract; use Laravel\Fortify\Contracts\RegisterResponse as RegisterResponseContract; use Laravel\Fortify\Contracts\TwoFactorLoginResponse as TwoFactorLoginResponseContract; public function boot() { // ... $this->app->singleton(LoginResponseContract::class, LoginResponse::class); $this->app->singleton(RegisterResponseContract::class, RegisterResponse::class); $this->app->singleton(TwoFactorLoginResponseContract::class, LoginResponse::class); }
检查用户登录时是否活跃
在文件: app/Providers/JetstreamServiceProvider.php
添加
public function boot() { ... // Verifica se o user está ativo Fortify::authenticateUsing(function (Request $request) { $user = User::where('email', $request->email)->first(); if ($user && Hash::check($request->password, $user->password)) { if ($user->state == 1) { return $user; } } return null; }); }
通过 htaccess 强制 HTTPS
# Force HTTPS RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]