Аутентификация Laravel

$this->beforeFilter(function()
{
Config::set('auth.model', 'User');
if ((Auth::guest())) {
//dd(Auth::guest());
$msg3  = "Please Login First";
// dd("ok");
return Redirect::to(Request::root().'/auth')->with("error_message", $msg3);

}

});

Я использую функцию Auth :: guest () для остановки неавторизованного доступа, но когда я нажимаю URL, неавторизованный доступ работает нормально, но вход в систему завершается неудачно … без этой части кода вход в систему с использованием Auth :: try () работает нормально … что может быть проблема ??

редактировать
// AuthController для входа

<?php

// uncomment this to use namespaced controller
//namespace Modules\admin\Controllers;

class AuthController extends \BaseController
{
public function __construct()
{
$this->beforeFilter(function()
{
Config::set('auth.model', 'User');
});
}public function getIndex()
{

return \View::make("login");
}public function postLogin()
{
$msg7  = "Invalid email address or password";
// $results['userData'] = user::get();
// dd($results);
//$password=Input::get('password');
//$password=Hash::make('secret');

$userData = array(
'email' => Input::get('email'),
'password'=> Input::get('password')
);

$email=Input::get('email');
// $password=Input::get('password');
//    dd($password);
//dd($userData);
$rules = array(
'email' => 'required|email',
'password' => 'required|min:5'
);$remember=Input::get('remember');

$remember_me=false;
if (!empty($remember)) {
$remember_me=true;
}

$validator = Validator::make(Input::get(), $rules);
if($validator->fails()){

// redirect to the login page with validation errors
return Redirect::to(Request::root().'/auth')->withErrors($validator)->withInput();}else{

//dd(Auth::attempt($userData));
// check authentication
if(Auth::attempt($userData,$remember_me)){
// dd(Auth::attempt($userData));                // redirect to the dashboard page
//dd($userData);

return Redirect::to(Request::root().'/home');

}else{
//dd($userData);
//DB::table('user')->insert($userData);
//dd("test");
// redirect to the login page with error message
return Redirect::to(Request::root().'/auth')->with("error_message", $msg7);
}

}
}// logout function
public function getLogout()
{
// delete all data from sesstion
Auth::logout();
Session::flush();
// redirect to login page
return Redirect::to(Request::root().'/auth');
}

}

// DashboardController, где заблокирован неавторизованный доступ

<?php

class DashboardController extends BaseController{

public function __construct()
{
$this->beforeFilter(function()
{
Config::set('auth.model', 'User');if ((Auth::guest())) {
//dd(Auth::guest());
$msg3  = "Please Login First";
// dd("ok");
return Redirect::to(Request::root().'/auth')->with("error_message", $msg3);

}

});

}public function getIndex()
{
//dd(Auth::check());

return View::make('home');
}

}

3

Решение

Проблема в том, что вы должны исключить свои действия при отправке данных формы входа. Если в вашем контроллере у вас есть метод postLogin для обработки POST-данных из формы входа в систему, вы должны использовать:

  $this->beforeFilter(function() {
// here goes code of your filter
}, array('except' => 'postLogin'));

Ссылка

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]