Auth->user() 在 Laravel 的 API 控制器中不起作用



在我的api.php文件中,我有apiResourceRoute::apiResource('temperature', AppHttpControllersApiTemperatureController::class);

存储方法中的温度控制器中,我尝试创建新的温度:


use IlluminateSupportFacadesAuth;
public function store(CreateTemperatureRequest $request){
Temperature::create([
'temperature' => $request->get('temperature'),
'userName' => Auth()->user()->name,
'created_at' => Carbon::now()
]);
return true;
}

表单提交后,我出现错误-试图获取非对象的属性"name"。我的表单是vueJs组件。如果我在控制器中添加身份验证中间件

public function __construct()
{
$this->middleware('auth:api')->only('store');
}

并呼叫CCD_ 2,我有错误401(未经授权(

我没有使用Passport进行身份验证。我使用标准Laravel身份验证,但表单是Vue组件,我使用API控制器。

如何在API控制器中获取用户数据?

使用auth((代替

auth($guard)->user()->name

$guard可能是

"api"或"web">

尝试

request()->user();

当使用API时,您必须发送一个标头,这对santum来说很好。如果不起作用,则切换到laravel Sanctum

最新更新