1、首先config/auth.php 配置下需要做修改
守护者guard
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
'admin' => [
'driver' => 'session',
'provider' => 'admin',
],
],
2、修改服务提供者
'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => App\User::class, ], 'admin' => [ 'driver' => 'eloquent', 'model' => App\Models\system\Manager::class, ],
3、Manager需要继承框架的Model类、实现框架接口
class Manager extends Model implements \Illuminate\Contracts\Auth\Authenticatable
{
use \Illuminate\Auth\Authenticatable;
以上已经可以实现认证了,但是需要在某个切入点植入认证判断这时需要中间件
//Kernel.php
protected $routeMiddleware = [
'admin' => AdminMiddleware::class,
//认证调用
$result = Auth::guard('admin')->attempt($data);
if ($result) {
php artisan make:middleware AdminMiddleware
使用中间件
$this->middleware('admin')->except(['login', 'check']);