Php 如何在Laravel 5.2中登录活动用户?

Php 如何在Laravel 5.2中登录活动用户?,php,sql,authentication,laravel-5.2,Php,Sql,Authentication,Laravel 5.2,我有一个users表,其中包含用户的每个细节,包括一个名为“isActive”的布尔字段 如果'isActive=1',我想登录用户,如果'isActive=0',我还想将用户重定向回登录页面 我的代码如下: public function postSignIn(Request $request) { $this->validate($request, [ 'username' => 'required', 'password' => 'required

我有一个users表,其中包含用户的每个细节,包括一个名为“isActive”的布尔字段

如果'isActive=1',我想登录用户,如果'isActive=0',我还想将用户重定向回登录页面

我的代码如下:

public function postSignIn(Request $request) 

{
  $this->validate($request, [
    'username' => 'required',
    'password' => 'required'
  ]);

  if(Auth::attempt(['username' => $request['username'], 'password' => $request['password']])) {
     return redirect()->route('home');
  }
}
上面的代码允许我正常签名。无论是否调用isActive字段

根据

如果愿意,还可以向身份验证添加附加条件 除了用户的电子邮件或用户名和密码之外,还可以进行查询。对于 例如,我们可以验证用户是否标记为“活动””:

在您的情况下,只需在数组中添加'isActive'=>1

您的代码应该是:-

if (Auth::attempt(['username' => $request['username'], 'password' => $request['password'],'isActive' => 1])) {
    // The user is active, not suspended, and exists.
}
else{
   // The user is Inactive, suspended, or not exists.
    return redirect()->route('home');
}
根据,

如果愿意,还可以向身份验证添加附加条件 除了用户的电子邮件或用户名和密码之外,还可以进行查询。对于 例如,我们可以验证用户是否标记为“活动””:

在您的情况下,只需在数组中添加'isActive'=>1

您的代码应该是:-

if (Auth::attempt(['username' => $request['username'], 'password' => $request['password'],'isActive' => 1])) {
    // The user is active, not suspended, and exists.
}
else{
   // The user is Inactive, suspended, or not exists.
    return redirect()->route('home');
}

只需将额外字段添加到
尝试
方法中即可

if(Auth::attempt([
    'username' => $request['username'], 
    'password' => $request['password'],
    'isActive' => 1,
    ])
) 
{
   return redirect()->route('home');
}

这些都包括在内了

只需将额外字段添加到
尝试
方法中即可

if(Auth::attempt([
    'username' => $request['username'], 
    'password' => $request['password'],
    'isActive' => 1,
    ])
) 
{
   return redirect()->route('home');
}

这些都包括在内了

我不知道你们的代码是从哪里来的,因为我的代码非常不同。你们是升级到5.2还是通过新安装的5.2来安装?以下是我的登录方法:

    if (Auth::guard($this->getGuard())->attempt($credentials, $request->has('remember'))) {
        return $this->handleUserWasAuthenticated($request, $throttles);
    }
我不想覆盖“记住”功能,因此我使用这种方式:

/**
 * Get the needed authorization credentials from the request.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return array
 */
protected function getCredentials(Request $request)
{
    $request = $request->only($this->loginUsername(), 'password');
    $request['active'] = true;
    return $request;
}

基本上添加
$request['active']=true
到你的
应用程序/Http/Controllers/Auth/AuthController
和Bob的叔叔的getCredential方法。

我不知道你们从哪里获取代码,因为我的代码与我的代码大不相同。你们是升级到5.2还是通过新安装的5.2来安装?以下是我的登录方法:

    if (Auth::guard($this->getGuard())->attempt($credentials, $request->has('remember'))) {
        return $this->handleUserWasAuthenticated($request, $throttles);
    }
我不想覆盖“记住”功能,因此我使用这种方式:

/**
 * Get the needed authorization credentials from the request.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return array
 */
protected function getCredentials(Request $request)
{
    $request = $request->only($this->loginUsername(), 'password');
    $request['active'] = true;
    return $request;
}

基本上添加
$request['active']=true
到您的
应用程序/Http/Controllers/Auth/AuthController
和Bob的叔叔中的getCredential方法。

@edmond您是否可以投票和/或接受答案?@edmond您是否可以投票和/或接受答案?我还有更多问题。例如,我的用户已登录,然后我决定将其停用。我想在他们按下任何链接时将其注销。我创建了一个中间件类,该类具有一个函数,用于检查Auth::user是否处于活动状态//执行其他操作Auth::注销并重定向到登录页面。我有更多问题。例如,我的用户已登录,然后我决定将其停用。我想在他们按下任何链接时将其注销。我创建了一个中间件类,该类具有一个函数,用于检查Auth::user是否处于活动状态//执行其他操作Auth::注销并重定向到登录页面。感谢分享。感谢分享。