在Laravel文档中,有简单的身份验证条件
Auth::attempt(array('email' => $email, 'password' => $password, 'active' => 1))
在我的应用中,用户可以拥有少数状态之一。我想验证其中一个:status!='99'。
有没有办法在此请求中实现此功能,或者在Auth尝试被触发之前需要一些额外的逻辑?
答案 0 :(得分:0)
使用!=
方法检查Auth::Attempt
条件是不可能的,除非您覆盖EloquentServiceProvider::retrieveByCredentials
方法。
您可以在登录过程中检查User
状态,并仅在状态与99
不同时进行身份验证。
在您的支票登录方式中:
//check credentials
if ( ! Auth::validate([ 'email' => $email, 'password' => $password ] ) )
//credentials are not valid -> redirect
//if credentials are valid, get the user that made last attempt
$user = Auth:getLastAttemped();
//check the status
if( $user->status != '99' )
{
//status ok -> log in the user
Auth::login( $user );
//redirect wherever you want
}
else
{
//status is wrong -> redirect to login
}