php – 服务器上不允许使用标头?
发布时间:2020-12-13 22:54:15 所属栏目:PHP教程 来源:网络整理
导读:我在Laravel中有一个简单的API.路由文件是这样的: ?phpRoute::resource('airports','AirportController');Route::resource('flights','FlightController');Route::resource('reservations','ReservationController');Route::get('auth','AuthController@ind
我在Laravel中有一个简单的API.路由文件是这样的:
<?php Route::resource('airports','AirportController'); Route::resource('flights','FlightController'); Route::resource('reservations','ReservationController'); Route::get('auth','AuthController@index'); Route::post('auth','AuthController@store'); Route::delete('auth','AuthController@destroy'); 过滤器的文件添加了一个自定义过滤器,如下所示: Route::filter('auth_token',function() { $auth_token = Request::header('Authorization'); if(!AuthToken::where('auth_token','=',$auth_token)->first()){ return Response::json([],401); } }); 所有资源都需要在auth_token过滤器之前传递.现在这在我的本地机器上工作得很好但是一旦我在我的服务器上尝试它,即使我传递了有效的令牌,一切都是未经授权的.我在自定义过滤器中通过dd($auth_token)计算的问题是它返回null,这意味着我的服务器由于某种原因不接受标头. 我的.htaccess文件看起来像这样: <IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews </IfModule> RewriteEngine On # Redirect Trailing Slashes... RewriteRule ^(.*)/$/$1 [L,R=301] # Handle Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] Header set Access-Control-Allow-Origin "*" Header set Access-Control-Allow-Headers "*" </IfModule> 我正在使用Postman REST客户端来测试我的应用程序.系统中只有一个用户使用电子邮件“admin@admin.com”和密码“admin12345”.您可以将这些详细信息发布到/ auth路由并获取授予的访问令牌,然后可以使用该令牌获取系统中的其他资源. 该应用程序托管here.我做错了什么? 解决方法
路线的顺序可能是个问题.尝试颠倒这样,看看它是否有效……
Route::get('auth','AuthController@destroy'); Route::resource('airports','AirportController'); Route::resource('flights','FlightController'); Route::resource('reservations','ReservationController'); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |