Laravel:如何在没有中间件的情况下检查用户身份验证的API路由('auth:api')

时间:2020-10-20 14:24:17

标签: laravel laravel-7 laravel-passport laravel-api

我如何检查当前从控制器访问方法的用户是否已通过身份验证, 有问题的API路由不受任何身份验证中间人的保护,因为该路由可供公共和两个来宾用户访问,所以我检查了我的请求标头(传递了Bearer令牌),正在为我的路由使用React路由器。并且api驱动程序为passport

公共路线

Route::get('product/list', 'ProductController@index')

尝试过的事情

  1. 将默认的AUTH Guard更改为api

  2. 尝试在控制器方法中明确调用Auth()->guard('api')->check()

    if (Auth()->guard('api')->check()) {
          return 'is_favourite';
    } else {
          return 'unauthenticated';
    }
  1. 也这样称呼它Auth()->check()
    if (Auth()->check()) {
          return 'is_favourite';
    } else {
          return 'unauthenticated';
    }

结果

总是'unauthenticated'

预期结果:is_favourite的结果,当在头中传递了承载令牌时,如果没有提供承载令牌,则为“未经身份验证”。

1 个答案:

答案 0 :(得分:1)

我最终使它开始工作,尝试了一下,就成功了:

if (auth('api')->check()) {
      return 'is_favourite';
    } else {
      return 'unauthenticated';
    }
相关问题