в реализации базовой аутентификации Laravel HTTP используется электронная почта для имени пользователя, как мы можем изменить столбец на имя пользователя? - PullRequest
0 голосов
/ 22 апреля 2019

в laravel мы можем использовать Http Basic Authentication, чтобы облегчить пользователю login.не имея страницы входа в систему, прикрепив middleware->('auth.basic') к концу Route в web.php, но по умолчанию он получает электронную почту в качестве имени пользователя, как я могу изменить его?спасибо.

Route::get('/somePage','Controller@controllerFunction')
->middleware('auth.basic');

картинка: https://drive.google.com/file/d/1gbzE0azW8TfZsvQN7k7ZoG2PIRlo14i6/view?usp=sharing

1 Ответ

1 голос
/ 22 апреля 2019

Из документов :

Как только промежуточное ПО будет прикреплено к маршруту, вы автоматически запрашивать учетные данные при доступе к маршруту в ваш браузер По умолчанию промежуточное программное обеспечение auth.basic будет использовать электронную почту столбец на записи пользователя в качестве "username".

В промежуточном программном обеспечении по умолчанию существует метод handle().

Вы должны создать свое собственное промежуточное программное обеспечение и переопределить handle():

namespace app\Http\Middleware;

use Closure;
use Illuminate\Auth\Middleware\AuthenticateWithBasicAuth;

class YourBasicAuthMiddleware extends AuthenticateWithBasicAuth
{
    public function handle($request, Closure $next, $guard = null, $field = null)
    {
        $this->auth->guard($guard)->basic($field ?: 'YOUR_FIELD'); //place here the name of your field

        return $next($request);
    }
}

Чем обновить App\Http\Kernel:

'auth.basic' => \app\Http\Middleware\YourBasicAuthMiddleware::class,

...