2

我如何检查从控制器访问方法的当前用户是否经过身份验证,有问题的 API 路由不受任何身份验证中间人的保护,因为公共和两个来宾用户都可以访问该路由,我检查了我的请求标头 Bearer 令牌正在通过,我正在为我的路线使用反应路由器。和 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在标头中传递不记名令牌时的结果,如果未提供不记名令牌,则为“未经身份验证”。

4

1 回答 1

5

我终于让它工作了,试过了,它奏效了:

if (auth('api')->check()) {
      return 'is_favourite';
    } else {
      return 'unauthenticated';
    }
于 2020-10-20T15:09:25.893 回答