Laravel API:每当我添加 auth:api 中间件时,方法就会发生冲突
Posted
技术标签:
【中文标题】Laravel API:每当我添加 auth:api 中间件时,方法就会发生冲突【英文标题】:Laravel API: Method are confliccting whenever i add the auth:api middleware 【发布时间】: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) 路由仍然返回未通过身份验证的身份验证令牌并且我确定令牌进入
【参考方案1】:
此路由不支持 GET 方法。支持的方法: 发布。
如果您阅读该错误,则表示不支持 get 方法。 您尚未在路由中声明方法 get。
【讨论】:
我应该声明一个 get 方法到一个路由并用一个 post 方法触发路由吗?我不确定我明白你的意思,请解释一下 你提出了一个获取请求,但你只有一个帖子 我发出了一个帖子请求,我也有一个帖子,但问题是 laravel 将其解释为传递了一个获取请求,然后返回该错误以上是关于Laravel API:每当我添加 auth:api 中间件时,方法就会发生冲突的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 VueJS 和 axios 将从 API 获取的数据填充到 Laravel 中的选择选项中?