Authentication laravel应用程序中的传统登录在Manager.php第90行中给出了InvalidArgumentException:不支持驱动程序[login]
我有一个网站,允许用户使用或传统上使用注册表通过social auth注册。我还创建了一个与用户链接的概要文件控制器,它只应在登录时访问,因此我在概要文件控制器上使用了Authentication laravel应用程序中的传统登录在Manager.php第90行中给出了InvalidArgumentException:不支持驱动程序[login],authentication,laravel-5.1,laravel-socialite,Authentication,Laravel 5.1,Laravel Socialite,我有一个网站,允许用户使用或传统上使用注册表通过social auth注册。我还创建了一个与用户链接的概要文件控制器,它只应在登录时访问,因此我在概要文件控制器上使用了中间件('auth') 当我登录并尝试访问配置文件时,在Manager.php第90行中出现以下错误InvalidArgumentException: 不支持驱动程序[登录]。 异常的示例消息是: 在Manager.php第90行 在Manager.php第63行中的Manager->createDriver('login') 在
中间件('auth')
当我登录并尝试访问配置文件时,在Manager.php第90行中出现以下错误InvalidArgumentException:
不支持驱动程序[登录]。
异常的示例消息是:
在Manager.php第90行
在Manager.php第63行中的Manager->createDriver('login')
在Facade.php第214行中的Manager->driver('login')
在外观::uu callStatic('driver',array('login'))在DinerAuthController.php第77行
在DinerAuthController.php第77行的Socialite::driver('login')
在DinerAuthController->redirectToProvider('login')上
在Controller.php第256行中调用_user_func_数组(数组(对象(DinerAuthController),'redirectToProvider')、数组('provider'=>'login'))
在ControllerDispatcher.php第164行的Controller->callAction('redirectToProvider',array('provider'=>'login'))中
在ControllerDispatcher.php第112行的ControllerDispatcher->call(object(DinerAuthController)、object(Route)、'redirectToProvider')
当我删除中间件身份验证时,就没有错误了
有人遇到过类似的错误吗任何有可行解决方案的人请帮助我
以下是相关文件的示例代码
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');
}
public function __construct()
{
if (Gate::denies('diner')) {
return redirect()->route('login')->send();
}
}
DinerAuthController.php第77行是returnsocialite::driver($provider)->redirect()代码>
config/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');
}
通过使用门面进行授权,解决了该问题。
在定义了这个能力之后,我通过Gate Facade检查它,如果检查失败,我会重定向用户
DinerProfileController.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');
}
public function __construct()
{
if (Gate::denies('diner')) {
return redirect()->route('login')->send();
}
}