Создание приложения с двумя разными пользователями, пользователями и Proveedores, имеющим Proveeedores в качестве модели, со своей собственной таблицей, пытающимся войти в систему как пользователь Proveedor и способным сделать это. Auth :: try () возвращает false и не может войти. Никаких ошибок.
Это мой код;
public function login(Request $request){
$credentials = $request->only('email', 'password')
if(Auth::guard('proveedor')->attempt($credentials)){
return view('proveedores-panel')->with('status', 'You are Logged In as Proveedor');
}else{
return redirect ('/');
}
//return view('proveedores-panel');
}
Я тоже пробую это
public function login(Request $request){
$credentials = $request->only('email', 'password')
if(Auth::guard('proveedor')->attempt($credentials)){
return view('proveedores-panel')->with('status', 'You are Logged In as Proveedor');
}else{
return redirect ('/');
}
//return view('proveedores-panel');
}
, но всегда возвращаю false и перенаправляет меня домой. Проверено на пользователя и все нормально. Надеюсь, кто-то может помочь, я пробовал много вещей.
это мой конфиг / аутентификация. php
'defaults' => [
'guard' => 'web',
'passwords' => 'users',
],
'proveedores' => [
'driver' => 'eloquent',
'model' => App\Proveedores::class,
],
------
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
'proveedor' => [
'driver' => 'session',
'provider' => 'proveedores',
],
'proveedor-api' => [
'driver' => 'token',
'provider' => 'proveedores',
],
],
----------
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'proveedores' => [
'driver' => 'eloquent',
'model' => App\Proveedores::class,
],
моя модель Proveedores
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticable;
use App\User;
use App\Tarea;
class Proveedores extends Authenticable
{
use Notifiable;
protected $guard = 'proveedor';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
мое RedirectIfПодлинное промежуточное ПО
public function handle($request, Closure $next, $guard = null)
{ //dd($request);
switch($guard){
case 'proveedor' :
if(Auth::guard($guard)->check()){
return redirect()->route('proveedores-home');
}
break;
default:
if (Auth::guard($guard)->check()) {
return redirect('/home');
}
break;
}
return $next($request);
}
Наконец, мой ProveedoresLoginController
namespace App\Http\Controllers\Auth;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Support\Facades\Auth;
//use Auth;
class ProveedorLoginController extends Controller
{
/**
* Show the application’s login form.
*
* @return \Illuminate\Http\Response
*/
public function showLoginForm()
{
return view('proveedores-login');
}
protected function guard(){
return Auth::guard('proveedor');
}
use AuthenticatesUsers;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = '/proveedores-panel';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
// $this->middleware('guest:proveedor')->except('logout');
}
public function proveedoresHome(){
return view('proveedores-panel');
}
public function login(Request $request){
//dd($request);
//dd(Auth::guard('proveedor'));
$credentials = $request->only('email', 'password')
// [
// 'email' => $request->email,
// 'password' =>$request->password
// ];
$user = Auth::guard('proveedor')->check();
//dd($user);
if(Auth::attempt($credentials)){
dd(Auth::guard('proveedor'));
return view('proveedores-panel')->with('status', 'You are Logged In as Proveedor');
}else{
return redirect ('/');
}
//return view('proveedores-panel');
}
}
Спасибо!