Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel Larvel:如何在没有中间件的情况下检查API路由的用户身份验证(';身份验证:API';)_Laravel_Laravel 7_Laravel Passport_Laravel Api - Fatal编程技术网

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

Laravel Larvel:如何在没有中间件的情况下检查API路由的用户身份验证(';身份验证:API';),laravel,laravel-7,laravel-passport,laravel-api,Laravel,Laravel 7,Laravel Passport,Laravel Api,如何检查从控制器访问方法的当前用户是否经过身份验证, 所讨论的API路由不受任何身份验证中间层的保护,因为该路由对公众和两个来宾用户都是可访问的,我检查了我的请求头。在传递承载令牌时,我使用react路由器进行路由。api驱动程序是passport 公共路线: Route::get('product/list','ProductController@index) 您尝试过的内容: 将默认身份验证保护更改为api 尝试在控制器方法中显式调用Auth()->guard('api')->check(

如何检查从控制器访问方法的当前用户是否经过身份验证, 所讨论的API路由不受任何身份验证中间层的保护,因为该路由对公众和两个来宾用户都是可访问的,我检查了我的请求头。在传递承载令牌时,我使用react路由器进行路由。api驱动程序是
passport

公共路线

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

您尝试过的内容

  • 将默认身份验证保护更改为
    api

  • 尝试在控制器方法中显式调用
    Auth()->guard('api')->check()

  • 也这样叫它
    Auth()->check()
  • 结果

    始终
    “未经验证”


    预期结果:
    的结果是_favorite
    当一个承载令牌在报头中传递时,如果没有提供承载令牌,则为“未经验证”。

    我最终让它工作,尝试了这个,它工作了:

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

    Auth::guard('api')->check()
    ?你确定你在测试请求中传递的承载令牌是正确的吗?@gbalduzzi是的,它被直接用于设置了
    中间件('Auth:api')
    的其他路由。它在laravel 8中工作,我现在可以调用相同的api(在Auth中间件外部),使用和不使用Auth令牌,每种类型的响应不同:)
        if (Auth()->check()) {
              return 'is_favourite';
        } else {
              return 'unauthenticated';
        }
    
    if (auth('api')->check()) {
          return 'is_favourite';
        } else {
          return 'unauthenticated';
        }