gpt4 book ai didi

php - 使用 laravel 检查事件用户状态

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:54:17 26 4
gpt4 key购买 nike

这是非常标准的登录功能和验证,效果很好。但我也想检查用户是否处于事件状态。我在我的用户表中设置了一个列,其中“事件”设置为 0 或 1。

public function post_login() 
{
$input = Input::all();

$rules = array(
'email' => 'required|email',
'password' => 'required',
);

$validation = Validator::make($input, $rules);

if ($validation->fails())
{
return Redirect::to_route('login_user')
->with_errors($validation->errors)->with_input();
}

$credentials = array(
'username' => $input['email'],
'password' => $input['password'],
);

if (Auth::attempt($credentials))
{
// Set remember me cookie if the user checks the box
$remember = Input::get('remember');
if ( !empty($remember) )
{
Auth::login(Auth::user()->id, true);
}

return Redirect::home();

} else {
return Redirect::to_route('login_user')
->with('login_errors', true);
}
}

我已经尝试过这样的事情了:

$is_active = Auth::user()->active;

if (!$is_active == 1)
{
echo "Account not activated";
}

但这只能在“auth attempt”if 语句中使用,此时用户凭据(电子邮件和密码)已经过验证。因此,即使此时用户帐户未处于事件状态,他们也已经登录。

我需要一种返回验证的方法,让他们知道他们仍然需要激活他们的帐户,并在检查他们的电子邮件和通行证的同时检查他们的帐户是否已设置。

最佳答案

过滤器是必经之路。解决这个问题既简单又干净,请参阅下面的示例。

Route::filter('auth', function()
{
if (Auth::guest())
{
if (Request::ajax())
{
return Response::make('Unauthorized', 401);
}
else
{
return Redirect::guest('login');
}
}
else
{
// If the user is not active any more, immidiately log out.
if(Auth::check() && !Auth::user()->active)
{
Auth::logout();

return Redirect::to('/');
}
}
});

关于php - 使用 laravel 检查事件用户状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16750375/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com