阅读(678) (11)

Laravel 8 无状态 HTTP 基础认证

2021-06-29 15:28:38 更新

你也可以使用 HTTP 基础身份验证,而无需在会话中设置用户标识符 cookie,这对 API 的身份验证特别有用。为此 ,请 定义一个中间件 它将调用 onceBasic 方法。如果 onceBasic 方法没有返回任何响应,那么请求就可以进一步传递到应用程序中:

<?php

namespace App\Http\Middleware;

use Illuminate\Support\Facades\Auth;

class AuthenticateOnceWithBasicAuth
{
    /**
     * 处理传入的请求
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, $next)
    {
        return Auth::onceBasic() ?: $next($request);
    }

}

接着, 注册路由中间件 并将它附加到路由:

Route::get('api/user', function () {
    // 只有经过身份验证的用户才能进入...
})->middleware('auth.basic.once');