由 AdminLTE 提供的 Admin Dashboard

0.4.0 2021-10-12 01:30 UTC

This package is auto-updated.

Last update: 2024-09-29 06:20:17 UTC


README

Latest Stable Version License

安装

安装 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]