I'm learning how to create custom auth system. I created own guard Player. On my test function I'm usimg attempt() to authenticate user. Checking is passed. Then I created test2 method which is accesible only for logged user.
My Route is:
Route::get('test', 'MyController@test');
Route::get('test2', 'MyController@test2')->middleware('auth');
My Controller is:
class MyController extends Controller
{
public function test()
{
$cr = ['name' => 'pl', 'password' => 'pl'];
if (Auth::guard('player')->attempt($cr)) {
$user = Auth::guard('player')->user();
return 'ok';
}
return 'not found';
}
public function test2()
{
return 'test2';
}
}
My guard config is:
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'player' => [
'driver' => 'session',
'provider' => 'player',
],
'club' => [
'driver' => 'session',
'provider' => 'club',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'player' => [
'driver' => 'eloquent',
'model' => App\Player::class,
],
'club' => [
'driver' => 'eloquent',
'model' => App\Club::class,
],
],
I want to get access to test2 route by hand (not by redirecting) after performing test function but I can't. I'm receiving Auth default login form.
Should I write my own middleware or set session manually? Please help.