Я пытаюсь сделать аутентификацию через laravel пакет, используя admins
таблицу. В каталоге проекта я добавил admin
guard в config / auth. php
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'admins' => [
'driver' => 'eloquent',
'model' => App\Admin::class,
],
// 'users' => [
// 'driver' => 'database',
// 'table' => 'users',
// ],
],
И в массиве guard
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
'admin' => [
'driver' => 'session',
'provider' => 'admins',
],
],
Ниже приведен мой контроллер входа в систему в pacakge
class LoginController extends Controller
{
use AuthenticatesUsers;
protected $redirectTo = '/admin/dashboard';
protected function redirectTo()
{
return '/admin/dashboard';
}
public function __construct()
{
$this->middleware('guest')->except('logout');
}
public function login(Request $request)
{
if(Auth::guard('admin')->attempt($request->only('email','password'), true)){
return redirect()
->intended(route('dashboard'))
->with('status','You are Logged in as Admin!');
}
}
}
и ниже - мой контроллер приборной панели
class DashboardController extends Controller
{
public function __construct()
{
/* dd(Auth::check()); */ //return false : just want to show you
$this->middleware('auth:admin');
}
public function index()
{
return view('xyz::dashboard');
}
}
А в моей Admin.php
модели, следующей за скриптом, есть
namespace App;
class Admin extends \ABC\xyz\App\Models\Admin
{
}
которая расширяет модель пакета
namespace ABC\xyz\App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Foundation\Auth\User as Authenticatable;
class Admin extends Authenticatable
{
protected $table = 'admins';
}
А ниже указаны маршруты из моего пакета
$namespace = 'ABC\Xyz\App\Http\Controllers';
Route::group([
'namespace' => $namespace,
'middleware' => ['web'],
'prefix' => 'admin'
], function () {
Route::get('login', function(){
return view('xyz::auth.login');
})->name('login');
Route::post('/login', 'Auth\LoginController@login')->name('customLogin');
});
Route::group(['namespace' => $namespace,'prefix' => 'admin', 'middleware' => ['auth'] ], function () {
Route::get('dashboard', 'DashboardController@index')->name('dashboard');
});
Когда я пытаюсь войти в систему, после отправки действительных данных он не перенаправляет меня на панель инструментов, ничего не происходит. Кроме того, когда я пытаюсь открыть принудительно / панель инструментов, я беру на страницу входа.
Также сразу после попытки входа в систему, когда я пытаюсь Auth::check()
, он возвращает true
, но то же самое, возвращая false
в dashboardController.php
функции конструкции. Таким же образом Auth::guard('admin')->user()
возвращает информацию о пользователе, в то время как на dashboardController.php
возвращается null
. Я не знаю, что и где я что-то упускаю.
Я хотел бы попросить вас помочь мне в этом. Буду признателен.
Спасибо