【发布时间】:2021-07-25 11:23:24
【问题描述】:
我正在使用 Laravel sanctum 进行身份验证,需要像这样访问 PropertyResource 中的 Auth::user() p>
use Illuminate\Support\Facades\Auth;
class PropertyResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
// if auth user make saved true or false,
// else make'saved' = false key
return [
'property' => parent::toArray($request),
'saved' => Auth::check() ? User::find(Auth::id())->is_saved(parent::toArray($request)['id']) : false,
];
}
}
登录时,'saved' 必须为 true 或 false,具体取决于属性是否已保存。
问题是当路由设置了 'auth:sanctum' 中间件时,我只能访问 Auth::user()。
我正在使用这条路线Route::get('property', [PropertyController::class, 'index']);
没有身份验证中间件并返回所有属性。
如何使用此路由访问 Auth 守卫?
【问题讨论】:
-
我现在使用两条路由修复了它,一条是没有用户登录,另一条是用户登录,因为我只能通过身份验证路由访问 auth guard。 第一路
Route::get('property', [PropertyController::class, 'index']);第二路Route::middleware('auth:sanctum')->get('auth-property', [PropertyController::class, 'index']);