【问题标题】:Laravel API request middleware unathenthicatedLaravel API 请求中间件未认证
【发布时间】:2020-07-25 15:52:33
【问题描述】:

我的 Laravel API HTTP 请求需要您的帮助。我正在尝试从我的 api 获得响应。但它发回“错误:“请求失败,状态码为 401”,并且 AuthenthicationException 显示“未验证”。我没有找到任何解决方案。我需要你的帮助...谢谢。

const response = (await rootApi.get(`/openSesame/targets/${id}`)).data;

我的'Api\TargetController

public function detail($id)
    {
        $spintaxInput = SpintaxInput::find($id);
        if (!$spintaxInput) {
            return response()->json(['error' => "Not found."], 404);
        }
        return response()->json($spintaxInput, 200);
    }

我的 api 路由

Route::group(['middleware' => ['auth:web']], function () {

    Route::group(['prefix' => 'openSesame'], function () {
        Route::get('/targets/{id}', 'Api\TargetController@detail');
    });

});

【问题讨论】:

    标签: laravel api middleware laravel-middleware laravel-authentication


    【解决方案1】:

    你应该使用passport,就像说的那样。

    对于身份验证中间件,将其替换为:

    middleware('auth:api')
    

    【讨论】:

      【解决方案2】:

      护照是去这里的方式。

      查看Passport

      现在,为您提供帮助:

      为了能够在您向 api 发出请求时进行身份验证,请确保使用标头:Authentication 和后跟 Bearer 的令牌

      令牌示例应该是这样的:

      Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxIiwianRpIjoiZThmNjZiMTU0Yjg4OGM2YmI2ODg0ZDM2ZDU3NGYxY2FiODFjODgyMmI0MDc5NDVkMTNjM2I2MDdiMDc0MGNkNTI1MzgxZDU2NWJkNWUwZTciLCJpYXQiOjE1ODY3MDY1MzgsIm5iZiI6MTU4NjcwNjUzOCwiZXhwIjoxNjE4MjQyNTM4LCJzdWIiOiIxIiwic2NvcGVzIjpbXX0.Brf48KrE3smifCIo61_8alvU8Yi5atsMtLz5t7-drQ7xnpG0Lga9q7Wh8RDJaYLtxHltdMLRVfp2HtstVQO6XY8qE0GNqS2pfjwFGDJTChWDSbINzjRyX9rO9FdTbE95TPlh84e_PRQ7iWMDO_DQkB67YvuYieXJjWAzF5UBGjK9ZMSjjzHahHV-iCE4Si_i0DHP6bLDTksZd51jiYV7ptGr41lZCwnL09fNjtWtLYTl79OoxIzcEPZMUQ_l7QcoJPJUYa0-lvHAta9hbkzZHdskIOB9C6afel4VxPFEVI0RmP5glJBJFKu0A_0N80iJf7yhXqofk5muF-bFWv9_092os2h3-zt0bDjTb7jeSAY8CkgxRQ3oLtRQN9MBgxRdUechycdimbKpU6hhpGfJfsofHtJiRGAbh5Eddlq5AGjdZkRW6zu9CjFUFiivZHOO_JI3HmU39jXUQx8218Czb9_Z-iG02K0Bvtk0eilvZl3k6FjvDka3beb0Zg99Da5MKeYSMKXqn4U-mndQPPtsidWCwh4foskzv6mRvWhsGh8xN0zByCTIhML-ogqrIGNcDUsrgpi2E4eue4PZ9DfYIa740kYKnJLzpNC6_ilQPesb3MjqLLx9DBcUkuWH7fwKKA_OaxhIv2WiELUECjWuIIDMpNGuK_Kes0RbqedPvlg
      

      使用 API 时,您需要在每个请求中使用该标头。否则你会得到一个 401。401 表示你没有登录。

      【讨论】:

        【解决方案3】:

        您应该使用Sanctum 进行 API 身份验证

        【讨论】:

          猜你喜欢
          • 2016-04-27
          • 2021-03-24
          • 2017-05-31
          • 1970-01-01
          • 2017-10-01
          • 2020-05-12
          • 2017-06-02
          • 1970-01-01
          • 2017-12-30
          相关资源
          最近更新 更多