После того, как пользователь зарегистрируется и войдет в систему, у меня появится незарегистрированная страница / секретная страница, которую мне нужно защитить с помощью другого пароля.
Я пытаюсь получить spatie / laravel-littlegatekeeper чтобы помочь мне сделать это, но сталкиваюсь с проблемами, заставляющими его работать.
Что я делаю:
littlegatekeeper .config:
<?php
return [
// Login credentials
'username' => env('GATEKEEPER_USERNAME', 'default_username'),
'password' => env('GATEKEEPER_PASSWORD', 'default_password'),
// The key as which the littlegatekeeper session is stored
'sessionKey' => 'littlegatekeeper.loggedin',
// The route to which the middleware redirects if a user isn't authenticated
// 'authRoute' => url('login'),
];
Маршруты:
Route::get('/secretapage', ['middleware' => 'littlegatekeeper', function () {
return view('dir.secretapage.index');
}]);
Route::get('/secretapage/login', function () {
return view('dir.secretapage.login');
});
Route::post('/secretapage/login/addCredentials', 'SecretController@addCredentials')->name('addCredentials');
SecretController:
После входа в систему моего пользователя. Затем я пытаюсь получить доступ к URL / секретной странице, которую перенаправляю обратно на домашнюю страницу, а именно / secretpage / login
public function index(Request $request)
{
$auth = resolve('littlegatekeeper');
if($auth->isAuthenticated())
{
return view('dir.secretpage.index');
}
return view('dir.secretpage.login');
}
///// FOR LOGING IN
public function addCredentials(Request $request)
{
$auth = resolve('littlegatekeeper');
$loginSuccess = $auth->attempt($request->only([
'username',
'password'
]));
if ($loginSuccess) {
return redirect('/secretapage')->with('success', 'Thank You for authorizing. Please proceed.');
}
else{
return back()->with('error', 'You entered the wrong credentials');
}
}
Файл входа в систему Blade:
<form method="POST" action="{{ route('addCredentials') }}">
...
</form>
Если я получу доступ к секретной странице / первому логину, я смогу добавить имя пользователя и пароль. Тогда я могу попасть на / secretpage без проблем ....
Но мне действительно нужно, чтобы пользователи сначала перешли на / secretpage, а затем, если не залогинены с секретным именем пользователя / pass, перенаправляются на / secretpage /Войти.