Laravel 5.6 - Пользователь не проходит аутентификацию - PullRequest
0 голосов
/ 06 июня 2018

Я искал несколько дней, но мой пользователь никогда не проходит аутентификацию при использовании промежуточного программного обеспечения для аутентификации.

Мы не используем стандартный способ промежуточного уровня, но используем стандартное промежуточное программное обеспечение для аутентификации, чтобы заблокировать доступ к группе маршрутов.,(в данном примере панели мониторинга)

Данные верны, так как не выдают сообщений об ошибках, но сам пользователь никогда не проходит аутентификацию.Я застрял в ней с среды, и я надеюсь, что кто-нибудь из вас сможет наконец-то решить эту проблему.

На самом деле никакого конкретного кода не существует, но мой (попытка) входящий в систему пользователь всегда направляется к неаутентифицированномуметод.(ведет к другому моему маршруту, индекс)

Важные столбцы базы данных для входа в систему называются 'username' и 'password' (стандартное имя, которое использует laravel)

Так что, пожалуйста, еслиЛюбой из вас может помочь, я был бы очень благодарен!

Внутри LeerlingController (где есть функция входа в систему)

public function postLogin(Request $request)
{
    $this->validate($request, [
        'username' => 'required',
        'password' => 'required'
    ]);

    if (!Auth::attempt(['username' => $request->username, 'password' => $request->password])){
        return redirect()->back()->with(['fail' => 'We konden je niet inloggen als '.$request->username]);
    }

    return redirect()->route('leerling.dashboard');
}

Внутри модели Лерлинга (часть, чтобы сделать его аутентифицируемым)

use Illuminate\Auth\Authenticatable;

class Leerling extends Model implements \Illuminate\Contracts\Auth\Authenticatable {
use Authenticatable;

Метод, который продолжает происходить при входе в систему действительного пользователя при отсутствии сообщения об ошибке , который находится в App \ Exceptions \ Handler.php

protected function unauthenticated($request, AuthenticationException $exception)
{
    return $request->expectsJson()
        ? response()->json(['message' => $exception->getMessage()], 401)
        : redirect()->route('index');
}

Маршруты панели инструментов, защищенные промежуточным программным обеспечением auth

Route::group(['middleware' => 'auth'], function () {
    Route::get('/leerling/dashboard', [
        'uses' => 'LeerlingController@getDashboard',
        'as' => 'leerling.dashboard'
    ]);

    // Don't mind this one, it's for the admin dashboard
    Route::get('/admin/dashboard', [
        'uses' => 'AdminController@getDashboard',
        'as' => 'admin.dashboard'
    ]);
});

Auth.php

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

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

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

1 Ответ

0 голосов
/ 06 июня 2018

Модели Laravel по умолчанию имеют значение id в качестве имени столбца в Models.Если вы используете что-то отличное от id, вы должны установить protected свойство $primaryKey с именем первичного ключа вашей таблицы.Например:

protected $primaryKey = 'Leerling_ID';
...