在我的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