Laravel11 密室未经授权 401

问题描述 投票:0回答:1

我使用 Laravel11 sainttum 会话(不是令牌) 从邮递员调用时,登录和注销(端点)正常工作 但是当我调用其他 api 端点时,它给了我 401 未经授权

有人可以帮我吗?aaa

laravel-11
1个回答
0
投票

在 bootsrap/app.php 中你可以这样做:


use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Middleware;
use Illuminate\Http\Request;

return Application::configure(basePath: dirname(__DIR__))
    ->withMiddleware(function (Middleware $middleware) {
        $middleware->statefulApi();

        $middleware->trustProxies(
            at: null,
            headers: Request::HEADER_X_FORWARDED_FOR |
                Request::HEADER_X_FORWARDED_HOST |
                Request::HEADER_X_FORWARDED_PORT |
                Request::HEADER_X_FORWARDED_PROTO |
                Request::HEADER_X_FORWARDED_AWS_ELB
        );
    })->create();

这是怎么回事?

  1. $middleware->statefulApi()
    指示应启用 Sanctum 的前端状态中间件,这将允许您从第一方 SPA 或其他来源访问您的 API。

  2. $middleware->trustProxies()
    允许您为 API 配置可信代理。

然后,如果您尝试访问登录墙后面的端点,则必须在前端请求中传递由 sainttum 生成的身份验证令牌。

如果您使用 Axios,您可以执行以下操作:

import axios from "axios";

const token = '12|121212.....'

axios.get('/account', {
   headers: {
      Authorization: 'Bearer ' + token
   }
})
  .then(res => {
    console.log(res.data);
  });
© www.soinside.com 2019 - 2024. All rights reserved.