Kullanıcının yalnızca URL'de get parametresi varsa yeniden yönlendirileceği bir oturum açma sistemi uygulamaya çalışıyorum, aksi halde yeniden yönlendirilecek profil sayfası. uri böyle bir şey (herhangi olsun parametresi)Laravel 5 denetleyicinin oturum açma yöntemiyle url'den parametre al parametre
/login
başarı varsa eğer
Yani, kullanıcı profili sayfaya yönlendirme olacaktır.
Ama
uri kullanıcı makaleleri sayfanın yerine profil sayfasına varsayılan yoluna yönlendirilecektir/login?r=articles
örneğin
için nasıl olsun parametresi varsa.Soru, denetleyicide, mümkünse bunu nasıl yapabilir veya get parametresini nasıl kontrol edebilirim?
routes.php
// Signin
Route::post('/account/signin', [
'uses' => '[email protected]',
'as' => 'user.signin',
]);
UserController.php
// Signin
public function postSignIn(Request $request)
{
$this->validate($request, [
'login-email' => 'required|email',
'login-password' => 'required'
]);
if (Auth::attempt(['email' => $request['login-email'], 'password' => $request['login-password']]))
{
// Tried this, isn't working... (maybe something's missing ??)
$redirect = $request->input('r');
if ($redirect) {
return redirect()->route($redirect);
}
// -->
return redirect()->route('user.account');
}
return redirect()->back();
}
signin.blade.php
<form role="form" action="{{ route('user.signin') }}" method="post" class="login-form" name="login">
<div class="form-group {{ $errors->has('login-email') ? 'has-error' : '' }}">
<label class="sr-only" for="email">Email</label>
<input type="text" name="login-email" value="{{ Request::old('login-email') }}" placeholder="Email..." class="form-username form-control" id="form-username">
</div>
<div class="form-group {{ $errors->has('login-password') ? 'has-error' : '' }}">
<label class="sr-only" for="password">Password</label>
<input type="password" name="login-password" value="{{ Request::old('login-password') }}" placeholder="Password..." class="form-password form-control" id="form-password">
</div>
<div class="form-group">
<input type="checkbox" name="remember" value="{{ Request::old('remember') }}" id="remember">
Remember
</div>
<button type="submit" class="btn">Sign in!</button>
<input type="hidden" name="_token" value="{{ Session::token() }}">
</form>
teşekkürler. Güncelleme
gerçeği hala laravel tanımaya çalışıyorum ve Sizlerin paylaştı doğru çözümler uygulayamaz muhtemelen neden olmasıdır, cevaplar için teşekkür ederiz.
Yani, bu, sorgu değerini tutan bir koşullu gizli alan oluşturarak çalıştım ve bu şekilde kullanıcı formu gönderdikten sonra, $ yanıt argümanlarının geri kalanıyla geçirilecek.
signin.blade.php
<form role="form" action="{{ route('user.signin') }}" method="post" class="login-form" name="login">
<div class="form-group {{ $errors->has('login-email') ? 'has-error' : '' }}">
<label class="sr-only" for="email">Email</label>
<input type="text" name="login-email" value="{{ Request::old('login-email') }}" placeholder="Email..." class="form-username form-control" id="form-username">
</div>
<div class="form-group {{ $errors->has('login-password') ? 'has-error' : '' }}">
<label class="sr-only" for="password">Password</label>
<input type="password" name="login-password" value="{{ Request::old('login-password') }}" placeholder="Password..." class="form-password form-control" id="form-password">
</div>
<div class="form-group">
<input type="checkbox" name="remember" value="{{ Request::old('remember') }}" id="remember">
Remember
</div>
<button type="submit" class="btn">Sign in!</button>
<input type="hidden" name="_token" value="{{ Session::token() }}">
<!-- Verify condition -->
@if(isset($_GET['referer']))
<input type="hidden" name="referer" value="{{ $_GET['referer'] }}">
@endif
</form>
UserController.php
böylece gibi// Signin
public function postSignIn(Request $request)
{
$this->validate($request, [
'login-email' => 'required|email',
'login-password' => 'required'
]);
if (Auth::attempt(['email' => $request['login-email'], 'password' => $request['login-password']]))
{
// Check for the new argument 'referer'
if (isset($request->referer)) {
return redirect()->route($request->referer);
}
// -->
return redirect()->route('user.account');
}
return redirect()->back();
}
işe yarıyor.
Bunu Laravel 5'de yapmanın uygun ve güvenli bir yolu olup olmadığını bilmiyoruz, ama çalışıyor.
lütfen cevabımı kabul edin – msonowal
Üzgünüz @ManashSonowal ama yine de yapamam ... – Bruno