Skip to content

添加/api/my/接口

E:\my-api\ehr-laravel-api\app\Http\Kernel.php

php
'my'=>[
            BeforeConvertRequestToSnakeCase::class,
            //'throttle:admin',
//            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Session\Middleware\StartSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
            'view.route',
            AdminGroup::class,
            AdminProject::class,
            AfterConvertResponseToCamelCase::class,
        ]

RouteServiceProvider

php
 protected $my_namespace = 'App\Http\Controllers\My';


Route::prefix('api/my')
->middleware('my')
->namespace($this->my_namespace)
->group(base_path('routes/my.php'));

case 'MY':
$this->myroute($class, $this->admin_namespace, $action, $id, $requestUri, $route);


// 自动获取controll文件夹生成route文件,不用再声明
protected function myroute(string $class, string $namespace, string $action, mixed $id, mixed $requestUri, \Illuminate\Routing\Router $route): void
    {
        config(["auth.defaults.guard" => 'my']);
        if (!empty($class) && method_exists($namespace . '\\' . $class . 'Controller', $action)) {
//                    Route::any($requestUri, "\\" . $namespace . "\\" . $class . 'Controller@' . $action)->middleware(['admin','jwt.auth', 'view.route', 'permission']);

            $middleware = ['my', 'jwt.auth', 'permission'];
            if (isset($id)) {
                $action =  $namespace . "\\" . $class . 'Controller@' . $action;
                if(!$route->getRoutes()->getByAction(trim($action,"\\"))){
                    Route::any(substr($requestUri, 0, strrpos($requestUri, '/')) . '/{id}', $action)->middleware($middleware);
                }
            } else {
                $action =  $namespace . "\\" . $class . 'Controller@' . $action;
                if(!$route->getRoutes()->getByAction(trim($action,"\\"))){
                    Route::any($requestUri, $action)->middleware($middleware);
                }
            }
        }
    }

MyBaseController

php
public function __construct(IndexService $Services)
    {
        parent::__construct();
        $this->services = $Services;
    }

注入service服务

E:\my-api\ehr-laravel-api\config\auth.php

php
'guards' => [
    'my' => [
            'driver' => 'jwt',
            'provider' => 'admin_users',
            'hash' => false,
        ],

]



'providers' => [
    ....,
        'my_users' => [
            'driver' => 'md5eloquent',
            'model' => App\Models\Master\MasterUsers::class,
        ],
        
    ],

修改后要清缓存才生效

loginr

E:\my-api\ehr-laravel-api\app\Http\Requests\My\LoginRequest.php

php

 public function authenticate()
    {
        $this->ensureIsNotRateLimited();

        if (!$token = auth('my')->attempt($this->only('account', 'password'), 1)) {
            RateLimiter::hit($this->throttleKey());

            throw  new MasterException("密码错误");
        }

        RateLimiter::clear($this->throttleKey());
    }

Lucking