Laravel 5.6.28: промежуточное ПО аутентификации перенаправляет на вход в систему (дескриптор не вызывается) - PullRequest
0 голосов
/ 10 октября 2018

Аутентификация промежуточного программного обеспечения в laravel для аутентификации пользователей с использованием моего настраиваемого средства защиты, но каждый раз, когда я вызываю маршрут с этим промежуточным ПО, я получаю сообщение об ошибке:

Маршрут [логин] не определен.

Прямо сейчас я просто пытаюсь убедиться, что промежуточное программное обеспечение вызывается. Это то, что я сделал до сих пор:

public function handle($request, Closure $next, $guard = null)
{ 
    return "hi";
    if (Auth::guard('api')->guest()) {
        if ($request->ajax() || $request->wantsJson()) {
            return response('Unauthorized.', 401);
        }

        return redirect()->guest('hi/login');
    }

    return $next($request);
}

выше - метод handle для authenticate.php.это мой код для охраны

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

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

Маршруты: это группа маршрутов, в которой у меня есть подгруппа, которая реализует промежуточное программное обеспечение аутентификации Route::group(['prefix' => 'app'], function() use ($router) { }

Это маршрут, который яя тестирую промежуточное ПО на Route::get('/subscribedcompanies','PromotionController@getFavoriteCompanies');

Еще одна вещь, которую я хотел бы добавить, я пытаюсь аутентифицироваться на основе access_token из базы данных.я изменил функцию аутентификации и учетных данных в контроллере входа в систему следующим образом:

protected function credentials(Request $request)
{
    return array_merge($request->header('authorization'));
}

public function authenticate(Request $request)
{
    $credentials = $request->header('authorization');

    if (Auth::attempt($credentials)) {
        // Authentication passed...
        return redirect()->intended('/');
    }
}

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Спасибо за помощь, ребята. Я сделаю специальное промежуточное ПО для аутентификации.

0 голосов
/ 10 октября 2018

просто введите имя для вашего логина как login Route::post('/login', 'LoginController@index')->name('login');

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...