Using Redirect::intendeed with authentication in laravel
New to laravel, I ran into a problem of using Redirect::intendeed during the authentication process.
My intention was to have a filter, that ensures only log'd in users can use access the protected area, and after login land on the page with the link the user originally typed in.
as was the case, it was very simple to get working, I found the sollution in the laravel forum:
Link
but im posting it here, ( so I can find it myself again :) )
Route::filter('auth.admin', function()
{
if (Auth::check() == false)
{
// Notice that im using Redirect::guest instead of Redirect::to,
// this is to make the Redirect::intendeed work later on.
return Redirect::guest('login');
}
});
then in my login handling, i use Redirect::intendeed
public function postLogin()
{
// Get all the inputs
$userdata = array(
'email' => Input::get('email'),
'password' => Input::get('password')
);
// Declare the rules for the form validation.
$rules = array(
'email' => 'Required',
'password' => 'Required'
);
// Validate the inputs.
$validator = Validator::make($userdata, $rules);
// Check if the form validates with success.
if ($validator->passes())
{
// Try to log the user in.
if (Auth::attempt($userdata))
{
// Redirect to intended page,
// notice this only works if we redirected to the login page using Redirect::guest(...)
return Redirect::intended('/')->with('success', 'You have logged in successfully');
}
else
{
// Redirect to the login page.
return Redirect::to('login')->withErrors(array('password' => 'Password invalid'))->withInput(Input::except('password'));
}
}
// Something went wrong.
return Redirect::to('login')->withErrors($validator)->withInput(Input::except('password'));
}
Written by Christian
Related protips
1 Response
Great post, I didn't realize that you needed to Redirect::guest in order to use the intended route!
over 1 year ago
·
Have a fresh tip? Share with Coderwall community!
Post
Post a tip
Best
#Php
Authors
Sponsored by #native_company# — Learn More
#native_title#
#native_desc#