php - Laravel - 调用我的注销路由时出错
问题描述
我使用 auth 安装了基本身份验证指南发送的 laravel,我的登录有效并返回了一个令牌,但是当我尝试注销时,它返回了以下错误:
HTTP/1.0 404 Not Found
Host: 127.0.0.1:8000
Date: Wed, 09 Dec 2020 19:33:08 GMT, Wed, 09 Dec 2020 19:33:08 GMT
Connection: close
X-Powered-By: PHP/7.2.24-0ubuntu0.18.04.7
Cache-Control: no-cache, private
Content-Type: application/json
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Headers: X-Requested-With, Content-Type, X-Token-Auth, Authorization
{
"message": "",
"exception": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
"file": "/home/shinier01/Projetos/Condivest/api-condinvest/api/vendor/laravel/framework/src/Illuminate/Routing/AbstractRouteCollection.php",
"line": 43,
"trace": [
...
{
"file": "/home/shinier01/Projetos/Condivest/api-condinvest/api/app/Http/Middleware/Cors.php",
"line": 18,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
...
]
}
我的 middlaware 中的这个错误是他用令牌进行控制的地方,但我认为我做错了什么,它看起来像这样:
<?php
namespace App\Http\Middleware;
use Closure;
class Cors
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
return $next($request)->header('Access-Control-Allow-Origin', '*')
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')
->header('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type, X-Token-Auth, Authorization');
}
}
我的注销路线也是如此:
Route::middleware('auth:api')->get('/user', function (Request $request) {
Route::get('/logout', 'Auth\ApiAuthController@logout')->name('logout.api');
});
这样我就提出了我的要求:
GET http://127.0.0.1:8000/api/user/logout HTTP/1.1
Content-Type: application/json
Authorization: Bearer eyJ0eXA...6c
我已经尝试过放置“承载”并采取同样的错误。
有谁知道我做错了什么?或者我忘记安装的东西,放入我的代码的那个?
我现在很感激任何提示、帮助或回答。
解决方案
我的错误在于我是如何在 api 中组装路由的,无论是请求中的路由,都是正确的:
Route::group(['middleware' => ['cors', 'json.response', 'auth:api']], function () {
Route::get('/auth/logout', 'Auth\ApiAuthController@logout')->name('logout.api');
Route::post('/group/store', 'GroupController@store')->name('create.group.api');
});
要求:
GET http://127.0.0.1:8000/api/auth/logout HTTP/1.1
Content-Type: application/json
Authorization: Bearer eyJ...dulTQe7LfH26c
推荐阅读
- ruby-on-rails - 如何在邮件程序中使用模板变量
- bash - 如何将多行查询结果存储在bash变量中
- javascript - “错误:节点不可见或不是 HTMLElement”。傀儡师
- c - 如果变量没有初始化,为什么这段 C 代码编译和执行要花这么长时间?
- javascript - 替换除数字、冒号和换行之外的所有内容
- flutter - 如何使用 shared_preferences 库实现 Flutter Riverpod FutureProvider?
- python - 美丽的汤找到包含 div 和 span 的路径文本
- python-3.x - 即使文件中有字母,也要对文件进行数字排序
- java - 如何制作分享按钮
- html - 在动画期间翻转图像