首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Laravel 8中,如果没有Sanctum作为中间件,Auth facade就无法工作。

在Laravel 8中,如果没有Sanctum作为中间件,Auth facade就无法工作。
EN

Stack Overflow用户
提问于 2022-07-08 09:44:46
回答 1查看 129关注 0票数 0

我正在创建一个api,任何人都可以通过这个api查看页面,但是只有管理员才能看到所有的帖子,而用户只被限制在批准的范围内。这是通过is_verified布尔变量实现的,其中admin的值为1,用户的值为0。我想创建一个像这样的函数

代码语言:javascript
复制
public function show(){
    if(Auth::check()){
        $showAllDetails = Events::all();
        echo $showAllDetails;   
    }else {
        $showUserDetails = Events:all()->where('is_verified',1);
        echo $showUserDetails;
    }
}

但是,只有在我的路线中有圣所api的情况下,Auth:check才能工作。

代码语言:javascript
复制
Route::middleware('auth:sanctum')->group(function () {
    Route::get('view', [ViewController::class, 'show']);
});

如果我在Hoppscotch上运行这段代码,它只显示管理程序是否已登录(用户不需要登录)。所以用户看不到任何帖子。如果我删除了auth:sanctum中间件,那么只有代码的其他部分运行,并且无法运行auth检查或任何东西。

我需要一种将两者结合在一个功能中的方法,这样我就可以创建一个单一的路径,而不是为不同的人创建两条路径。有办法做这样的事吗?

EN

回答 1

Stack Overflow用户

发布于 2022-07-08 10:00:12

代码语言:javascript
复制
public function show(){
  if(Auth::check()){
    $showAllDetails = Events::all();
    echo $showAllDetails;   
  }else {
    $showUserDetails = Events::where('is_verified',1)->get();
    echo $showUserDetails;
 }
}

我想您的其他部分是不正确的查询,更改您的其他部分如上。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72909550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档