我有一個網站,允許用戶通過社交AUTH寄存器使用Laravel socialite或傳統上使用登記表。我還創建了一個鏈接到用戶的配置文件控制器,它只能在登錄時訪問,因此我在配置文件控制器上使用了middleware('auth')
。傳統登錄給出InvalidArgumentException在Manager.php線90:驅動器[登錄]不支持
當我登錄傳統和試圖訪問一個輪廓,我得到以下錯誤InvalidArgumentException in Manager.php line 90: Driver [login] not supported.
例外的樣本信息是:
in Manager.php line 90 at Manager->createDriver('login') in Manager.php line 63 at Manager->driver('login') in Facade.php line 214 at Facade::__callStatic('driver', array('login')) in DinerAuthController.php line 77 at Socialite::driver('login') in DinerAuthController.php line 77 at DinerAuthController->redirectToProvider('login') at call_user_func_array(array(object(DinerAuthController), 'redirectToProvider'), array('provider' => 'login')) in Controller.php line 256 at Controller->callAction('redirectToProvider', array('provider' => 'login')) in ControllerDispatcher.php line 164 at ControllerDispatcher->call(object(DinerAuthController), object(Route), 'redirectToProvider') in ControllerDispatcher.php line 112
。
當我刪除中間件身份驗證,然後沒有錯誤。
有人遇到過類似的錯誤嗎? 任何人都可以通過一個可行的解決方案來幫助我。
以下是涉及文件的示例代碼。
DinerAuthController.php
public function postDinerSignin(Request $request)
{
$this->validate($request, [
'email' => 'required',
'password' => 'required',
]);
if (! Auth::diner()->attempt(
$request->only(['email', 'password']),
$request->has('remember')
)) {
return redirect()->route('dinerhome')->with('info', 'Could not sign you
in with those credentials.');
}
$request->session()->put('user_id', Auth::diner()->get()->id);
return redirect()->route('dinerhome')->with('info', 'You are now signed in');
}
public function redirectToProvider($provider)
{
return Socialite::driver($provider)->redirect();
}
public function handleProviderCallback($provider)
{
try {
$user = Socialite::driver($provider)->user();
} catch (Exception $e) {
return Redirect::to('auth/{provider}');
}
$authUser = $this->findOrCreateUser($user);
Auth::diner()->login($authUser, true);
return redirect()->route('dinerhome');
}
DinerAuthController.php線77是return Socialite::driver($provider)->redirect();
配置/ services.php:
'google' => [
'client_id' => env('GOOGLE_ID'),
'client_secret' => env('GOOGLE_SECRET'),
'redirect' => env('GOOGLE_URL'),
],
'twitter' => [
'client_id' => env('TWITTER_ID'),
'client_secret' => env('TWITTER_SECRET'),
'redirect' => env('TWITTER_URL'),
],
'facebook' => [
'client_id' => env('FACEBOOK_ID'),
'client_secret' => env('FACEBOOK_SECRET'),
'redirect' => env('FACEBOOK_URL'),
]
DinerProfileController.php:
public function __construct()
{
$this->middleware('auth');
}