Когда я пытаюсь войти в систему, следующее не работает:
Auth::guard('pia')->attempt(['email' => $_POST['email'],
'password'=>$_POST['password']])
Если я удалю guard('pia')
тогда это работает, но иногда это redirects
по умолчанию Laravel login page
хотя пользователь залогинен, чего я не хочу.
Ниже код для route
, auth.php
а также AuthController.php
предоставлены.
Я использую разные AuthControllers для разных типов пользователей, также их таблицы базы данных разделены, как для pia
Таблица pia
, для администратора таблицы администратора и т. д.
routes.php
Route::group(['prefix' => 'pia'], function() {
//Login Routes...
Route::get('login','Pia\AuthController@showLoginForm');
Route::post('login','Pia\AuthController@login');
Route::get('logout','Pia\AuthController@logout');
// Registration Routes...
Route::get('register', 'Pia\AuthController@showRegistrationForm');
Route::post('register', 'Pia\AuthController@register');
});
config/auth.php
'pia' => [
'driver' => 'session',
'provider' => 'pia',
],
<?php
namespace App\Http\Controllers\Pia;
use App\Pia;
use Validator;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ThrottlesLogins;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
use Illuminate\Http\Request;
use DB;
use Mail;
use Auth;
class AuthController extends Controller
{
/*
|--------------------------------------------------------------------------
| Registration & Login Controller
|--------------------------------------------------------------------------
|
| This controller handles the registration of new users, as well as the
| authentication of existing users. By default, this controller uses
| a simple trait to add these behaviors. Why don't you explore it?
|
*/
use AuthenticatesAndRegistersUsers, ThrottlesLogins;
/**
* Where to redirect users after login / registration.
*
* @var string
*/
protected $guard = 'pia';
protected $redirectTo = '/pia/dashboard';
protected $redirectAfterLogout = '/pia/login';
/**
* Create a new authentication controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware($this->guestMiddleware(), ['except' => 'logout']);
}
public function showLoginForm(){
if(view()->exists('auth.authenticate')){
return view('auth.authenticate');
}
return view('pia.auth.login');
}
public function showRegistrationForm(){
return view('pia.auth.register');
}
public function login(Request $request)
{
if (Auth::guard('pia')->attempt(['email' => $_POST['email'],'password'=>$_POST['password']])) {
return redirect('/pia/dashboard');
}else{
return redirect('/pia/login')->with('warning', 'Problem, try again!'); //
}
}
...
}
Задача ещё не решена.
Других решений пока нет …