Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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 sanctum Laravel sanctum SPA-此设置cookie域属性对于当前主机url无效_Laravel Sanctum - Fatal编程技术网

Laravel sanctum Laravel sanctum SPA-此设置cookie域属性对于当前主机url无效

Laravel sanctum Laravel sanctum SPA-此设置cookie域属性对于当前主机url无效,laravel-sanctum,Laravel Sanctum,我有一个VueJS应用程序和一个Laravel API在不同的项目中。 我有一些问题要和拉雷维尔圣殿一起解决。 我的VueJs在localhost:8080上,我的API在localhost:8000上 当我尝试设置cookie时,我遇到了“此设置cookie域属性对于当前主机url无效”的问题 我认为laravel无法设置cookie,当我尝试验证时,他返回了419错误状态,这意味着令牌不匹配 My config/cors.php 'paths' => [ 'api

我有一个VueJS应用程序和一个Laravel API在不同的项目中。 我有一些问题要和拉雷维尔圣殿一起解决。 我的VueJs在localhost:8080上,我的API在localhost:8000上

当我尝试设置cookie时,我遇到了“此设置cookie域属性对于当前主机url无效”的问题

我认为laravel无法设置cookie,当我尝试验证时,他返回了419错误状态,这意味着令牌不匹配

My config/cors.php

   'paths' => [
        'api/*',
        'sanctum/csrf-cookie',
        'login',
        'logout'
    ],

    'allowed_methods' => ['*'],

    'allowed_origins' => ['*'],

    'allowed_origins_patterns' => [],

    'allowed_headers' => ['*'],

    'exposed_headers' => [],

    'max_age' => 0,

    'supports_credentials' => true,

我遵循laravel文档

将这些行添加到我的app/Http/Kernel.php

use Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful;

'api' => [
    EnsureFrontendRequestsAreStateful::class,
    'throttle:api',
    \Illuminate\Routing\Middleware\SubstituteBindings::class,
],
我在vue应用程序中激活了axios凭据

axios.defaults.withCredentials = true;
我设置我的会话\ u DOMAIN=localhost:8080

在my VueJS登录组件中:

       axios
          .get('/sanctum/csrf-cookie')
          .then(response => {
            axios.post('/login', {
              email : 'alexandria96@example.com',
              password : 'password'
            }).then(response => {
                console.log('User signed in!');
            }).catch(error => console.log(error)); // credentials didn't match
      });

对csrf cookie的请求

登录请求
登录之前,您必须检查cookie是否已设置。您的cookie未设置,这就是您出现419错误的原因。 尝试从配置中删除端口。 试一试

现在检查一下饼干。对我来说很有用

SESSION_DOMAIN=localhost
SANCTUM_STATEFUL_DOMAINS=localhost