2017-09-01 173 views
0

我得到这个错误:调用未定义的方法照亮身份验证 TokenGuard ::尝试()

Call to undefined method Illuminate\Auth\TokenGuard::attempt()

从这个代码:

if(Auth::guard('admin')->attempt(['email' => $request->email, 'password' => $request->passsword], $request->remember)){ 
      return redirect()->intended(route('admin.dashboard')); 
     }else{ 

我已经进口Illuminate\Support\Facades\Authas the docs suggest

我的auth.php可能会帮助

<?php 

return [ 

    'defaults' => [ 
     'guard' => 'web', 
     'passwords' => 'users', 
    ], 
    'guards' => [ 
     'web' => [ 
      'driver' => 'session', 
      'provider' => 'users', 
     ], 
     'api' => [ 
      'driver' => 'token', 
      'provider' => 'users', 
     ], 
     'admin' => [ 
      'driver' => 'session', 
      'provider' => 'admins', 
     ], 
     'admin-api' => [ 
      'driver' => 'token', 
      'provider' => 'admins', 
     ], 
    ], 
    'providers' => [ 
     'users' => [ 
      'driver' => 'eloquent', 
      'model' => App\User::class, 
     ], 
     'admins' => [ 
      'driver' => 'eloquent', 
      'model' => App\Admin::class, 
     ], 
    ], 
    'passwords' => [ 
     'users' => [ 
      'provider' => 'users', 
      'table' => 'password_resets', 
      'expire' => 60, 
     ], 
     'admins' => [ 
      'provider' => 'admins', 
      'table' => 'password_resets', 
      'expire' => 15, 
     ], 
    ], 
]; 
+0

您的控制器中是否定义了Auth :: guard()方法?看起来它试图使用api守卫之类的守卫,而不是你的管理员守卫。 –

回答

1

我想你可能试图使用“会话”后卫驱动程序,而不是“令牌”。所以,试着这样做:

配置/ auth.php配置文件:

'admin-api' => [ 
    'driver' => 'token', 
    'provider' => 'admins', 
], 

你必须将其更改为

'admin-api' => [ 
    'driver' => 'session', 
    'provider' => 'admins', 
], 

那么你应该运行:

  • php artisan缓存:清除
  • php手工配置:缓存

再试一次。祝你好运!

相关问题