当前位置: 首页 > 知识库问答 >
问题:

Laravel Sanctum-Sanctum/csrf cookie(204“无内容”)

江阳冰
2023-03-14

Laravel sanctum让我有点头疼,因为我花了几个小时试图弄清楚为什么sanctum/csrf cookieroute不返回任何内容。最初未找到相同的路由返回404,但在添加“prefix”之后=

这是我的一些代码

环境署署长

SANCTUM_STATEFUL_DOMAINS=localhost:8080
SPA_URL=http://localhost:8080
SESSION_DOMAIN=localhost

--config/cors.php

'paths' => [
        'api/*',
        'login',
        'logout',
        'register',
        'user/password',
        'forgot-password',
        'reset-password',
        'sanctum/csrf-cookie',
        'user/profile-information',
        'email/verification-notification',
      ],

    'allowed_methods' => ['*'],

    'allowed_origins' => ['*'],

    'allowed_origins_patterns' => [],

    'allowed_headers' => ['*'],

    'exposed_headers' => [],

    'max_age' => 0,

    'supports_credentials' => true,

公理

export const authClient = axios.create({
  baseURL: process.env.VUE_APP_API_URL,
  withCredentials: true, // required to handle the CSRF token
});

完成所有这些之后,如果我尝试使用

axios.get('/sanctum/csrf-cookie').then(response => {
    // Login...
});

我得到204无内容响应我也添加了api中间件在kernel.php中的指导,但仍然不会设置Cookie.419令牌不匹配。我也运行了laravel的新安装,PHP工匠优化,清除了我的浏览器历史,检查了邮递员中的endpoint,但仍然相同的204和419异常

共有1个答案

韩梓
2023-03-14

我在同一个问题上挣扎了好几天,然后找到了一种行之有效的方法。因此:

'/samtum/csrf-cookie'路由在成功时返回204响应,然后您必须发送带有凭据的post请求。

  1. SPA请确保将带有凭据的标题设置为true

环境署署长

SESSION_DRIVER=cookie
SESSION_DOMAIN='.localhost'
SANCTUM_STATEFUL_DOMAINS='localhost,127.0.0.1'

.kernel.php

添加中间件阵列:\illumb\Session\middleware\StartSession::class

 类似资料:
  • Introduction Laravel Sanctum provides a featherweight authentication system for SPAs and simple APIs. Official Documentation Documentation for Sanctum can be found on the Laravel website. Contributing

  • 我正在通过JMeter2.9进行websocket压力测试。当我用“轻”JSON发送请求和响应时。结果还可以。但是当响应json包含一个base64 png(大约360KB)时。jmeter返回代码204没有内容(可能超时)。 是我的jmeter在这里需要一些配置,还是其他问题。如果有人对此有所了解,请教我。 SampleResult字段:ContentType:DataEncoding:

  • HTTP 204 No Content成功状态响应代码指示请求已成功,但客户端无需离开其当前页面。204响应默认是可缓存的。的ETag报头被包括在这样的响应。 常见用例是204作为PUT请求的结果返回,更新资源,而不更改向用户显示的页面的当前内容。如果资源已创建,201 Created则返回。如果页面应该更改为新更新的页面,则200应该使用该页面。 状态 204 No Content 规范 规范

  • 我有一个Rest服务,并且使用Spring的RestTemplate和Apache HttpClient作为, 当Web服务返回204响应时,204响应之后的第二个服务调用将失败,并出现读取超时。 Spring网:4.3.5 我不知道原因。有什么帮助吗? 编辑:从调试日志, org . Apache . http . impl . conn . defaulthttpresponseparser;

  • 我使用Spring WebClient调用内部API,但有时我的webClient不分析响应代码,并在"exChangeToMono"方法和等待上停留块。 我使用: Spring-引导-启动-父2.5.2 Spring webClient 5.3.8 我迁移到SpringBootStarter父级2.5.2。以前我用过exchange,但现在已经不推荐了,我认为这是我的问题 我没有尝试过的一个解决

  • 我们正在设计一个公共API,并试图通过以下情况找出GET的最佳实践: 路径参数: 已找到:200 个具有响应正文。 未找到:404。 查询参数: 找到订单:200个,带有响应正文。 没找到:这种情况下应该是200还是204甚至404? 在我看来,应该是200或204,因为在本例中找到了资源,而查询参数只执行过滤效果。但在这种情况下,我们应该返回200还是204?