【问题标题】:Laravel API: Method are confliccting whenever i add the auth:api middlewareLaravel API:每当我添加 auth:api 中间件时,方法就会发生冲突
【发布时间】:2021-02-01 23:48:14
【问题描述】:

每当我使用 POST 请求调用路由时,即使我的路由确实是 POST 请求,我也会一直出现此错误。只有当我尝试将我的路由与auth:api 中间件绑定时才会出现此问题,请帮忙调查一下,如果您让我提供更多信息,请告诉我

Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException:此路由不支持 GET 方法。支持的方法:POST。在文件 /home/kingsleyakindele/projects/secpry_backend_api/vendor/laravel/framework/src/Illuminate/Routing/AbstractRouteCollection.php 第 117 行

这是我的路线

Route::prefix("auth")->group(function () {
Route::post('login', [LoginController::class, 'login'])->name('login');
Route::post('refresh', [LoginController::class, 'handleRefreshToken'])->name('refresh');
Route::post('me', [LoginController::class, 'userDetails'])->name("user_details");
});

这是来自我的控制器

public function __construct()
{
    $this->middleware("auth:api", ["except" => ["login", "refresh"]]);
}

只有登录路径可以正常工作,刷新路径和其他路径都不能正常工作。

感谢您的帮助

【问题讨论】:

  • 确保在客户端调用路由为post 方法。
  • 在这些路由中是否发生了任何重定向,例如验证失败重定向?
  • @apokryfos,验证后没有重定向,我只返回一个 json 响应
  • 如果验证失败,验证本身会导致重定向,除非请求的标头中有“Accept: application/json”
  • @apokryfos,谢谢它解决了它,但现在,我仍然遇到这样的问题,即使我已经登录,所有 protected(auth:api) 路由仍然返回未通过身份验证的身份验证令牌并且我确定令牌进入

标签: laravel api laravel-8


【解决方案1】:

此路由不支持 GET 方法。支持的方法: 发布。

如果您阅读该错误,则表示不支持 get 方法。 您尚未在路由中声明方法 get。

【讨论】:

  • 我应该声明一个 get 方法到一个路由并用一个 post 方法触发路由吗?我不确定我明白你的意思,请解释一下
  • 你提出了一个获取请求,但你只有一个帖子
  • 我发出了一个帖子请求,我也有一个帖子,但问题是 laravel 将其解释为传递了一个获取请求,然后返回该错误
猜你喜欢
  • 2020-05-18
  • 2017-03-23
  • 1970-01-01
  • 2019-08-10
  • 2019-06-01
  • 2019-03-05
  • 2021-12-08
  • 2021-04-03
  • 1970-01-01
相关资源
最近更新 更多