laravel 如何实现接口既可以匿名访问也可以登录状态访问?

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'), 那么未登录状态又无法访问。

阅读 797
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏