невозможно войти как администратор в laravel 5.8 - PullRequest
0 голосов
/ 29 марта 2020

В моем приложении laravel настроена мульти-аутентификация. Я пытаюсь создать множественную аутентификацию, используя аутентификацию по умолчанию laravel 5.8. У меня есть две таблицы: одна - пользователи, другая - администраторы. Я настроил охрану для администратора. Вход в систему пользователя работает нормально, никаких проблем, но когда я пытаюсь войти в систему администратора, он не работает, даже если я вхожу с правильными учетными данными. Проверка поля пароля работает, если я использую менее 6 символов. Пожалуйста, помогите мне решить эту проблему. enter code here Моя модель администратора:

<?php

namespace App;

use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;

class Admin extends Authenticatable {
    use Notifiable;

    protected $guard = 'admin';

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password', 'title',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

    /**
     * The attributes that should be cast to native types.
     *
     * @var array
     */
    protected $casts = [
        'email_verified_at' => 'datetime',
    ];
}


Guard setting is


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

        'api' => [
            'driver' => 'token',
            'provider' => 'users',
            'hash' => false,
        ],
        'admin' => [
            'driver' => 'session',
            'provider' => 'admins',
        ],
    ],


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

        'admins' => [
            'driver' => 'eloquent',
            'model' => App\Admin::class,
        ],

        // 'users' => [
        //     'driver' => 'database',
        //     'table' => 'users',
        // ],
    ],


    'passwords' => [
        'users' => [
            'provider' => 'users',
            'table' => 'password_resets',
            'expire' => 60,
        ],
        'admins' => [
            'provider' => 'admins',
            'table' => 'password_resets',
            'expire' => 60,
        ],
    ],



    AdminLoginController is

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Auth;
use Illuminate\Http\Request;

class AdminLoginController extends Controller {

    public function __construct() {
        $this->middleware('guest:admin')->except('logout');
    }

    public function showLoginForm() {
        return view('auth.admin-login');
    }
    protected function guard() {
        return Auth::guard('admin');
    }

    public function login(Request $request) {

        //validate the form
        $this->validate($request, [
            'email' => 'required|email',
            'password' => 'required|min:6',
        ]);
        //attemp to login
        if (Auth::guard('admin')->attempt(['email' => $request->email, 'password' => $request->password], $request->remember)) {
            //Authentication passed...
            return 'success';
            //return redirect()
            //->intended(route('admin.dashboardsdsdsd'));

            //if login success then redirect to page
            // if not success then redirect to back

        }

        return redirect()->back()->withInput($request->only('email', 'remember'));
    }
}

Маршрут

Route::get('/', function () {
    return view('welcome');
});

Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');
Route::get('admin', 'AdminController@index')->name('admin.dashboard');

Route::get('admin/login', 'Auth\AdminLoginController@showLoginForm')->name('admin.login');
Route::post('admin/login', 'Auth\AdminLoginController@login')->name('admin.login.submit');

Пожалуйста, помогите мне решить эту проблему, поэтому этот админ может войти в систему.

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