请求检查用户是否经过身份验证



我被要求检查用户是否登录我已经给出了一个示例代码

public function getAllNfts(GetAllNfts $request): JsonResponse
{
$data = $request->getData();
$data['uuid'] = ($request->hasHeader('Authorization') && $request->header('Authorization')) ? $this->token_service->getUserUUIDFromToken($request) : null;
$requested_uuid = $request->getRequestedUUID();
return $this->nft_service->getAllNfts(uuid: $requested_uuid, data: $data);
}

但是当我在管理和json上工作时,我没有uid用于我的代码,因为它在管理面板中这是我的代码

public function updateCollection(EditCollection $request):RedirectResponse
{
$request->validated();
$data = $request->all();
$this->collection_repository->updateCollection($data);
return redirect('collections');
}

THis is FOrm Request ValidateEditCollection.php

<?php
namespace AppHttpRequests;
use IlluminateFoundationHttpFormRequest;
class EditCollection extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'title' => ['required', 'string','max:255', 'min:10', 'between:10,255'],
'status' => ['required','Boolean','size:1'],
];
}
}

如何检查所有请求以查看用户是否经过身份验证并且不违背示例代码

我认为你不需要检查每个请求,只要你使用Laravel的中间件。看一下这个文件。

你可以试试这样写$data->user_id = Auth::id();然后导入use IlluminateSupportFacadesAuth;

我认为对于你的情况,你可以使用表单请求类在处理请求之前进行检查

<?php
namespace AppHttpRequests;
use IlluminateFoundationHttpFormRequest;
class EditCollection extends FormRequest
{
public function authorize()
{
return auth()->check();
}
public function rules()
{
return [
'title' => ['required', 'string','max:255', 'min:10', 'between:10,255'],
'status' => ['required','Boolean','size:1'],
];
}
}

将这几行添加到需要验证用户是否已登录的所有请求中

public function authorize()
{
return auth()->check();
}

我希望它对你有帮助

相关内容

最新更新