2015-10-28 4 views
1

Мне интересно, как добавить дополнительные условия, такие как активная аутентификация laravel, которая поставляется с laravel? Я мог бы сделать это, выполнив аутентификацию вручную, но если есть ли возможности сделать это с использованием auth по умолчанию, могу ли я это сказать?Как добавить дополнительное условие в аутентификацию laravel?

ответ

1

Вы можете добавить дополнительные элементы в массиве параметров, например:

Auth::attempt([ 
    'username' => $username, 
    'password' => $password, 
    'some_field_name' => $some_value 
]); 

Все детали будут проверены как where($key, '=', $value).

+0

Не могли бы вы уточнить, я имею в виду, где именно это можно было бы поставить? – allaghi

+0

Это 'if (Auth :: попытка ($ array)) {// Login ...}' для входа пользователя в систему. –

1

Если переопределить метод getCredentials признака AuthenticatesUsers в AuthController, вы можете добавить дополнительные условные параметры:

<?php 

namespace App\Http\Controllers\Auth; 

use App\User; 
use Validator; 
use App\Http\Controllers\Controller; 
use Illuminate\Foundation\Auth\ThrottlesLogins; 
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers; 
use Illuminate\Http\Request; 

class AuthController extends Controller 
{ 
    use AuthenticatesAndRegistersUsers, ThrottlesLogins; 

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

     $credentials['active'] = 'y'; 
     return $credentials; 
    } 

    //Other code and methods here 
} 

Этот метод обеспечивает поля для проверки методу покушать. В начале файла вам необходимо использовать пространство имен Illuminate\Http\Request.

Смежные вопросы