讨论数量:
话说 Auth
,那肯定避不开 Guard
那聊到 Guard ,则肯定避不开 Request
底层逻辑很简单,自带 有两种 guard
api 、web
当默认不配置的gard的时候,则我们会自动读取响应 路由文件。
例如
从 web.php 路由进来,则使用 web guard
从 api.php 路由进来,则使用 api guard
当然,你也可以在 中间件中 重新修改 其 guard
参考如下代码
$user = null;
// 获取cookie,将cookie放置到header 供jwt进行验证
if($token = $request->get('token')) {
$user = auth(env('MODULE_LOGIN_GUARD'))->setToken($token)->user();
// 重置解析器,修改当前默认 Guard 用户
$request->setUserResolver(function ($guard = null) {
return auth(env('MODULE_LOGIN_GUARD'))->user();
});
}
if($user) {
return $next($request);
}
核心代码: setUserResolver
推荐文章: