我使用 Laravel11 sainttum 会话(不是令牌) 从邮递员调用时,登录和注销(端点)正常工作 但是当我调用其他 api 端点时,它给了我 401 未经授权
有人可以帮我吗?aaa
在 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();
这是怎么回事?
$middleware->statefulApi()
指示应启用 Sanctum 的前端状态中间件,这将允许您从第一方 SPA 或其他来源访问您的 API。
$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);
});