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]