SORU
13 Mart 2013, ÇARŞAMBA


Laravel tekrar giriş yaptıktan sonra orijinal hedefe yönlendirme

Bu çok temel bir akım gibi görünüyor, ve Laravel temel şeyler için çok güzel bir çözüm, bir şeyler eksik gibi hissediyorum.

Kullanıcı kimlik doğrulaması gerektiren bir linki tıklama. Laravelauthfiltre devreye giriyor ve bir oturum açma sayfası için onları yönlendirir. Kullanıcı oturum açtığında, önce 'auth' filtre devreye girdi. kazanmaya çalışıyorlardı orjinal sayfaya gider

İyi bir yol aslında ulaşmaya çalışıyorlardı ne var? Laravel bir istek tehlikesini olduğundan, eğer izlemek bir yere kullanıcı günlükleri sonra kolay yönlendirme için tutar mı bilemedim.

Değilse, bazılarınız bu el ile uygulanan ne duymak merak ediyorum.

CEVAP
13 Mart 2013, ÇARŞAMBA


Laravel 5 (cevap güncelleştirilmiş)

Basitçe söylemek gerekirse,

Auth katman:

// redirect the user to "/login"
// and stores the url being accessed on session
if (Auth::guest()) {
    return redirect()->guest('login');
}
return $next($request);

Giriş eylem:

// redirect the user back to the intended page
// or defaultpage if there isn't one
if (Auth::attempt(['email' => $email, 'password' => $password])) {
    return redirect()->intended('defaultpage');
}

Laravel 4 (eski cevap)

Bu cevap sırasında çerçevesinde kendisinden resmi bir destek vardı. Günümüzde kullanabilirsinizyöntem bgdrl aşağıda belirttimbu yöntem:(Cevabı güncellemek denedim, ama kabul etmeyecek gibi görünüyor)

Üzerinde auth filtresi:

// redirect the user to "/login"
// and stores the url being accessed on session
Route::filter('auth', function() {
    if (Auth::guest()) {
        return Redirect::guest('login');
    }
});

Giriş eylem:

// redirect the user back to the intended page
// or defaultpage if there isn't one
if (Auth::attempt(['email' => $email, 'password' => $password])) {
    return Redirect::intended('defaultpage');
}

Laravel 3 (hatta eski cevap)

Bu şekilde uygulamak olabilir:

Route::filter('auth', function() {
    // If there's no user authenticated session
    if (Auth::guest()) {
        // Stores current url on session and redirect to login page
        Session::put('redirect', URL::full());
        return Redirect::to('/login');
    }
    if ($redirect = Session::get('redirect')) {
        Session::forget('redirect');
        return Redirect::to($redirect);
    }
});
// on controller
public function get_login()
{
    $this->layout->nest('content', 'auth.login'); 
}

public function post_login()
{
    $credentials = [
        'username' => Input::get('email'),
        'password' => Input::get('password')
    ];

    if (Auth::attempt($credentials)) {
        return Redirect::to('logged_in_homepage_here');
    }

    return Redirect::to('login')->with_input();
}

Oturum yeniden yönlendirme saklamak kullanıcı Bayan onun kimlik bilgileri yazılı ya da bir hesap yok ve kayıt için olsa bile, kalıcı yararı vardır.

Bu da Auth dışında başka hiçbir oturumda bir yönlendirme ayarlamak için izin verir ve sihirli bir şekilde çalışacaktır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Benjamin Heckendorn

    Benjamin Hec

    4 Mayıs 2008
  • GALERNAYA20

    GALERNAYA20

    19 NİSAN 2011
  • Drakinen

    Drakinen

    1 EYLÜL 2008