在我的控制器结构中,我指定了中间件:
public function __construct()
{
$this->middleware('auth:api')
->except(['index', 'show']);
}
通过执行以下操作,可以轻松地使用身份验证中间件获取任何路由的用户:
public function save(Request $request)
{
$user = $request->user();
}
但是我无法弄清楚如何获取允许用户访问它们并且不使用身份验证中间件的路由:
public function show(Request $request) {
// $request->user(); - this returns NULL
// How can I get the user here?
}
当我使用 Chome 的检查网络选项卡时,我可以在我的请求标头中看到以下内容:
Authorization:Bearer kGncvh4IlotxIw2zY80GCnQPTMGyPZKGXntsHzsav2DPvffFfZZG60h74rsE
但是我需要做什么才能从中获取用户对象?
我通过阅读这篇博文想通了。
神奇的代码行是:
$user = Auth::guard('api')->user();