2017-02-21 46 views
-1

我是Laravel的新手,我已经为用户完成了一个系统。验证用户是通过“php artisan make:auth”完成的,我在users表中有一列名为activated;当activated = 0,我不希望用户登录。请给我一点帮助?对不起,如果这个线索很无聊。不允许不活跃的用户在Laravel登录

回答

-1

我发现我自己,我只需添加这myLoginController.php

protected function credentials(Request $request) 
{ 
    $credentials = $request->only($this->username(), 'password'); 
    $credentials['activated'] = 1; 

    return $credentials; 
} 
0

你将要处理这既为使用AuthenticatesUsers性状或您AuthController手动一部分通过检查你的登录表单响应并返回适当的回应:

<?php 

namespace App\Http\Controllers; 

use App; 

use Illuminate\Auth\AuthManager; 
use Illuminate\Foundation\Auth\AuthenticatesUsers; 

/** 
* Class AuthController 
* @package Speechlink\Http\Controllers\Auth 
*/ 
class AuthController extends Controller 
{ 
    use AuthenticatesUsers; 

    /** 
    * Create a new authentication controller instance. 
    * @param AuthManager  $auth 
    */ 
    public function __construct(AuthManager $auth) 
    { 
     $this->auth = $auth; 
    } 

    /** 
    * Deal with the login attempt (overrides the trait's postLogin method) 
    * 
    * @param Request $request 
    * @return $this|\Illuminate\Http\RedirectResponse 
    */ 
    public function postLogin(Request $request) 
    { 
     $this->validate($request, [ 
      'username' => 'required', 
      'password' => 'required', 
     ]); 

     $credentials = $request->only('username', 'password'); 

     if ($this->auth->attempt($credentials)) { 
      // We authenticated so continue 
      return redirect('path/to/logged_in'); 
     } else { 
      // We failed authentication so redirect somewhere else 
      return redirect('path/to/disabled_user'); 
     } 

    } 
}