Authentication laravel应用程序中的传统登录在Manager.php第90行中给出了InvalidArgumentException:不支持驱动程序[login]

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') 在

我有一个网站,允许用户使用或传统上使用注册表通过social auth注册。我还创建了一个与用户链接的概要文件控制器,它只应在登录时访问,因此我在概要文件控制器上使用了
中间件('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();
    }
}