php - Laravel 在来宾中间件路由中访问 Auth
问题描述
我有一个使用来宾中间件的路由组
Route::group(['middleware' => 'guest'],function(){
Route::resource('posts','PostController')->only(['show']);
});
我面临的问题是只有在帖子已被批准或所有者是授权用户时才能查看来自帖子资源的显示路线。
但问题是当我在访客中间件的 show route 中访问 Auth::id() 时,它说它是空的......
我是否必须为此制作新的中间件以进行检查,或者是否有解决方法?
if(is_null($post->approved_at)){
if(Auth::id() === $post->user->id){
return response()->json($post,200);
}
return abort(404);
}
return response()->json($post,200);
解决方案:
通过在 auth() 而不是 Auth::id() 中传递 api 保护来修复它,因为来宾用户无法访问 Auth 外观,但可以使用 auth api。
auth('api')->id();
解决方案
推荐阅读
- javascript - 在反应中不能同时使用按钮和链接
- vue.js - PrimeVue 数据表过滤器
- javascript - 无法解构“pin”的属性“urls”,因为它未定义
- azure - Azure API 管理提供 200 [未完整发送(请参阅异常遥测)]
- r - 如何向 ggplot2 中的各种散点图添加指数趋势线?
- html - 一种形式内另一种形式变得不可点击
- html - Angular:Form-Submit 应该转发到新组件
- angular - 如何从 Angular 的模块文件中调用在服务内部编写的函数?
- javascript - 如何迭代数组?
- javascript - 如果在过滤期间未找到任何内容,如何在自定义表格中显示消息?