企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 使用laravel提供的auth登录机制(基本上开发项目都会基于这个来实现登录) 首先需要修改`app/config/auth.php` ![](https://img.kancloud.cn/01/ca/01ca70a0a6eb0d066be67d70bebd50b1_673x873.png) 其中值得注意就是user模型的命名空间路径 是否和默认的一致 如果不是就需要修改为适合自己的。 然后还有`guard` 默认是 `web` `auth()`辅助函数的参数就是默认 `web` 如果不是用的默认 如图中所示添加了 `admin` 那么使用就需要 `auth('admin')`这样来鉴权了。 ## 路由需要怎么定义登录和未登录的 首先可以定义自己的路由文件 ![](https://img.kancloud.cn/ef/d0/efd050eeb60b850cd0b838e0619e8fc8_249x122.png) ### 如何才能使自己定义的路由文件生效 需要找到 `app\Providers\RouteServiceProvider.php` 文件编写 ~~~ <?php namespace App\Providers; use Illuminate\Cache\RateLimiting\Limit; use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; use Illuminate\Http\Request; use Illuminate\Support\Facades\RateLimiter; use Illuminate\Support\Facades\Route; class RouteServiceProvider extends ServiceProvider { /** * The path to the "home" route for your application. * * This is used by Laravel authentication to redirect users after login. * * @var string */ // public const HOME = '/home'; /** * The controller namespace for the application. * * When present, controller route declarations will automatically be prefixed with this namespace. * * @var string|null */ protected $namespace = 'App\\Http\\Controllers'; /** * Define your route model bindings, pattern filters, etc. * * @return void */ public function boot() { $this->configureRateLimiting(); $this->routes(function () { Route::prefix('api') ->middleware('api') ->namespace($this->namespace) ->group(base_path('routes/api.php')); Route::middleware('web') ->namespace($this->namespace) ->group(base_path('routes/web.php')); Route::middleware('web') ->namespace($this->namespace) ->group(base_path('routes/admin.php')); }); } /** * Configure the rate limiters for the application. * * @return void */ protected function configureRateLimiting() { RateLimiter::for('api', function (Request $request) { return Limit::perMinute(60)->by(optional($request->user())->id ?: $request->ip()); }); } } ~~~ 这样便能使用了,这样就开始编写admin.php路由文件了 ~~~ <?php use Illuminate\Support\Facades\Route; // 不需要登录的 Route::group([ 'prefix' => 'admin', 'namespace' => 'Admin', 'middleware' => [ ] ],function () { Route::get('captcha','AuthController@captcha')->name('captcha'); Route::get('login','AuthController@index')->name('login'); Route::post('login','AuthController@login'); }); // 需要登录的 Route::group([ 'prefix' => 'admin', 'namespace' => 'Admin', 'middleware' => [ 'auth:admin', // 这个是登录验证的中间件使用的是自带的 后面:admin是传递的参数 ,这样便知道是那个 guard在使用 ] ],function () { Route::get('/','WelcomeController@index'); Route::get('index','IndexController@index'); }); ~~~