Appearance
添加/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());
}