Я хочу сделать страницу администратора и страницу пользователя с другой таблицей и другой страницей для аутентификации при входе в систему, я уже делаю 2 модели: модель администратора и модель пользователя по умолчанию. И добавьте Guard for Admin в /config/auth.php
Это мой auth.php
'defaults' => [
'guard' => 'web',
'passwords' => 'users',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
'admin' => [
'driver' => 'session',
'provider' => 'admin',
],
'admin-api' => [
'driver' => 'token',
'provider' => 'admin',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'admin' => [
'driver' => 'eloquent',
'model' => App\Admin::class,
],
],
'passwords' => [
'users' => [
'provider' => 'users',
'table' => 'password_resets',
'expire' => 60,
],
'admin' => [
'provider' => 'admin',
'table' => 'password_resets',
'expire' => 60,
],
],
Это моя модель администратора
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class Admin extends Authenticatable
{
use Notifiable;
protected $guard = "admin";
protected $table = 'admins';
protected $fillable = [
'name', 'email', 'jabatan','password'
];
protected $hidden = [
'password', 'remember_token',
];
}
А это моя логика авторизации в контроллере
// Login Auth
public function auth()
{
if (auth()->check()) {
return redirect('/pendaftar');
}
else {
if (auth()->attempt([
'email' => request('email'),
'password' => request('password')
]))
{
return redirect('/pendaftar');
}
else
{
return back()->withErrors([
'message' => Lang::get('auth.failed')
]);
}
}
}
Это мой маршрут: список для этого контроллера
| | POST | login-admin | |App\Http\Controllers\AdminController@auth | web |
Проблема:
Проблема: я не могу войти, используя эту модель администратора, и всегда выкидываю ложное условие в auth()->attempt([])
, даже если я жестко закодировал электронную почту и пароль. Пожалуйста, дайте мне несколько советов и что не так в моем коде.
Примечание
Я уже использую auth('admin')->attempt([])
для создания спецификации гвардии для администратора, но результат все тот же, я не могу войти.
Я уже изменяю настройки по умолчанию auth config на admin из Интернета, и результат все тот же.
Я уже изменяю драйвер провайдера защиты на database
и указываю таблицу на таблицу admins
в /config/auth.php
, но ничего не происходит.
Я уже тестирую php thinker в cmd, чтобы получить данные, и данные доступны , но контроллер аутентификации по-прежнему выдает ложное условие.