QQ扫一扫联系
laravel的一个问题,我简化了一下是这样。
我想让访问接口 /a,未登录状态访问返回 0, 登录状态下返回 1,如何实现?
正常是这样。topic 状态为 1 时可以任何人访问,状态未 2 时,只有作者可以访问
// route.php Route::get('/topics/{topic}', [\App\Http\Controllers\Api\TopicController::class, 'show']) // controller $this->authorize('view', $topic); // TopicPolicy return $topic->status == 1 || $topic->user_id == $user->id;
上边这种情况,无论登录与否,$user 都是 null。
如果 route 加上 middleware('auth'), 那么未登录状态又无法访问。
不使用中间件,再需要的地方使用
Auth::guard
调用认证守护,来获取 user 信息。你这里没有指定看守器,那应该就是默认的 web ,可以不传参数调用那个方法。