-1

laravel我们可以使用Http Basic Authentication以方便用户login。没有登录页面,通过附加middleware->('auth.basic'),到Routein的末尾web.php,但默认情况下它以电子邮件作为用户名,我该如何更改它?谢谢你 。

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

图片: https ://drive.google.com/file/d/1gbzE0azW8TfZsvQN7k7ZoG2PIRlo14i6/view?usp=sharing

4

1 回答 1

2

文档

将中间件附加到路由后,在浏览器中访问路由时会自动提示您输入凭据。默认情况下,auth.basic 中间件将使用用户记录上的电子邮件列作为“用户名”。

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,

于 2019-04-22T14:23:22.947 回答