我已经设置了一个路由组,以使用令牌对我的API调用进行身份验证。
POST请求工作正常,有效的令牌通过了身份验证,无效的令牌按预期返回了“未经身份验证”。
发出GET请求时,每次都会得到“未经身份验证”。
我使用与POST请求相同的api_token
进行GET请求,但仍然获得“未经身份验证”
这是我的路线组
Route::group(['middleware' => ['auth:api', 'api']], function () {
Route::post('/', 'ApiPostController@store');
Route::get('/', 'ApiPostController@fetch');
});
我尝试从网上论坛中删除POST路由,但没有成功。尝试将路线(从/
更改为/get
)也无济于事。
即使我正在发送有效令牌,是什么导致GET请求失败?
答案 0 :(得分:3)
问题是您在正文中发送api_token
,而GET和POST请求的请求正文不同。在GET主体中发送令牌也是不安全的,这就是为什么您必须通过标头发送令牌的原因。
答案 1 :(得分:0)
如果您使用的是Apache服务器,则可以尝试在.htaccess中添加这些行
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
您还可以清除配置并尝试
php artisan config:clear
您也可以添加@csrf。