Vanya Avchyan
Vanya Avchyan

Reputation: 880

Laravel 5.2.29 multiauth using Auth::guard('one'),Auth::guard('two')

Please help me to resolve this problem

I want to use multi authentication.

My Laravel version is 5.2.* (5.2.29)

I do all that is written in the documentation

//congig/auth.php
<?php

return [

'defaults' => [
    'guard' => 'web',
    'passwords' => 'users',
],

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'api' => [
        'driver' => 'token',
        'provider' => 'users',
    ],

    'admin' => [
        'driver' => 'token',
        'provider' => 'adminProvider',
    ],
],

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],

    'adminProvider' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],
],

'passwords' => [
        'users' => [
            'provider' => 'users',
            'email' => 'auth.emails.password',
            'table' => 'password_resets',
            'expire' => 60,
        ],
    ],
];

 But 
 Auth::guard('api')->attempt(['email'=>[email protected],...])

It gives the following error

FatalErrorException in AuthController.php line 34:

Call to undefined method Illuminate\Auth\TokenGuard::attempt() What did I do wrong?

Upvotes: 3

Views: 1276

Answers (1)

Alireza Rahmani Khalili
Alireza Rahmani Khalili

Reputation: 2954

you should change the following :

'admin' => [
    'driver' => 'token',
    'provider' => 'adminProvider',
],

to

'admin' => [
    'driver' => 'session',
    'provider' => 'adminProvider',
],

you can not use attempt with token.

Upvotes: 2

Related Questions