RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1262550
Accepted
doox911
doox911
Asked:2022-03-27 19:43:34 +0000 UTC2022-03-27 19:43:34 +0000 UTC 2022-03-27 19:43:34 +0000 UTC

Laravel sanctum 认证失败

  • 772

作曲家.json:

    "require": {
        "ext-json": "*",
        "doctrine/dbal": "^2.12.1",
        "fideloper/proxy": "^4.4",
        "fruitcake/laravel-cors": "^2.0",
        "laravel/framework": "^8",
        "laravel/sanctum": "^2.9",
        "laravel/tinker": "^2.5",
        "spatie/laravel-permission": "^3.18"
    },

内核.php:

    protected $middlewareGroups = [
      'web' => [
        EncryptCookies::class,
        AddQueuedCookiesToResponse::class,
        StartSession::class,
        AuthenticateSession::class,
        // ShareErrorsFromSession::class,
        VerifyCsrfToken::class,
        SubstituteBindings::class,
      ],

      'api' => [
        EnsureFrontendRequestsAreStateful::class,
        'throttle:api',
        SubstituteBindings::class,
      ],
    ];

Cors.php:

return [
    'paths' => ['api/*, /login'],
    'allowed_methods' => ['*'],
    'allowed_origins' => ['*'],
    'allowed_origins_patterns' => [],
    'allowed_headers' => ['*'],
    'exposed_headers' => [],
    'max_age' => 0,
    'supports_credentials' => true,
];

圣所.php:

    'stateful' => explode(',', env('SANCTUM_STATEFUL_DOMAINS', implode(',', [
      'localhost',
      'localhost:8000',
      'localhost:8080',
      'localhost:8002',
      '127.0.0.1:8002',
      '127.0.0.1:8080',
    ]))),

auth.php:

    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],

        'api' => [
            'driver' => 'token',
            'provider' => 'users',
            'hash' => false,
        ],
    ],

RouteServiceProvider.php:

        Route::prefix('api/v1')
          ->middleware('auth:sanctum')
          ->group(function() {
              require_once base_path('routes/Api/V1/Auth/routes.php');
              require_once base_path('routes/Api/V1/Users/routes.php');
          });

爱讯:

import Vue, { PluginObject } from 'vue';
import axios from 'axios';

const config = {};

const _axios = axios.create(config);

_axios.defaults.withCredentials = true;
_axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';

_axios.interceptors.request.use(
  cfg => {
    return cfg;
  },
  err => {
    return Promise.reject(err);
  },
);

/**
 * Add a response interceptor
 */
_axios.interceptors.response.use(
  res => {
    return res;
  },
  err => {
    return Promise.reject(err);
  },
);

const Plugin: PluginObject<any> = {
  install: Vue => {
    Vue.$axios = _axios;
  },
};
Plugin.install = Vue => {
  Vue.$axios = _axios;
  window.axios = _axios;
  Object.defineProperties(Vue.prototype, {
    $axios: {
      get() {
        return _axios;
      },
    },
  });
};

Vue.use(Plugin);

export default Plugin;

在此处输入图像描述

我正在登录。但任何请求通过auth:sanctum:

{message: "Unauthenticated."}

可能是什么问题呢?

laravel
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    doox911
    2022-03-28T18:20:18Z2022-03-28T18:20:18Z

    错误

    有两个错误:

    • 并非所有路线都已注册middleware('api');
    • 指定不正确middleware。

    解决方案

    我的路线是分开的app/Providers/RouteServiceProvider.php,对于每条路线,我middleware都这样设置:

    Route::prefix('api/v1')
      ->middleware('api')
      ->middleware('auth:sanctum')
      ->group(function() {
        require_once base_path('routes/Api/V1/{some path}/routes.php');
        require_once base_path('routes/Api/V1/{some path}/routes.php');
      })
    

    事实证明,这在laravel 8中不起作用。

    当我通过数组时,它对我来说工作正常middleware。此外,middleware这个数组中的顺序很重要。

    Route::prefix('api/v1')
      ->middleware(['api', 'auth:sanctum'])
      ->group(function() {
        require_once base_path('routes/Api/V1/{some path}/routes.php');
      });
    
    Route::prefix('api/v1')
      ->middleware(['api', 'auth:sanctum'])
      ->group(function() {
        require_once base_path('routes/Api/V1/{some path}/routes.php');
      });
    
    Route::prefix('api/v1')
      ->middleware(['api', 'auth:sanctum'])
      ->group(function() {
        require_once base_path('routes/Api/V1/{some path}/routes.php');
        require_once base_path('routes/Api/V1/{some path}/routes.php');
      });
    
    • 0

相关问题

  • 如何从另一个控制器访问任意控制器

  • 以用户身份运行队列

  • 在刀片 laravel 中使用 Vue.js

  • 为什么要在项目中使用 SoftDeletes?

  • 批量填写 Laravel

  • 如何在 Blade Laravel 中加载不同的表单?

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    表格填充不起作用

    • 2 个回答
  • Marko Smith

    提示 50/50,有两个,其中一个是正确的

    • 1 个回答
  • Marko Smith

    在 PyQt5 中停止进程

    • 1 个回答
  • Marko Smith

    我的脚本不工作

    • 1 个回答
  • Marko Smith

    在文本文件中写入和读取列表

    • 2 个回答
  • Marko Smith

    如何像屏幕截图中那样并排排列这些块?

    • 1 个回答
  • Marko Smith

    确定文本文件中每一行的字符数

    • 2 个回答
  • Marko Smith

    将接口对象传递给 JAVA 构造函数

    • 1 个回答
  • Marko Smith

    正确更新数据库中的数据

    • 1 个回答
  • Marko Smith

    Python解析不是css

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5