Laravel에 간단한 API가 있습니다. 경로 파일과 같이이다 :서버에서 헤더를 사용할 수 없습니까?
Route::filter('auth_token', function()
{
$auth_token = Request::header('Authorization');
if(!AuthToken::where('auth_token', '=', $auth_token)->first()){
return Response::json([], 401);
}
});
모든 자원이 auth_token
필터 전에 통과해야합니다
<?php
Route::resource('airports', 'AirportController');
Route::resource('flights', 'FlightController');
Route::resource('reservations', 'ReservationController');
Route::get('auth', '[email protected]');
Route::post('auth', '[email protected]');
Route::delete('auth', '[email protected]');
필터의 파일 필터과 같이 추가 사용자 정의가 있습니다. 이제는 내 로컬 컴퓨터에서 잘 작동하지만 서버에서 직접 시도 할 때 유효한 토큰을 전달하더라도 모든 것이 허가되지 않습니다. 내 사용자 정의 필터에서 dd($auth_token)
으로 생각한 문제는 null을 반환한다는 것인데, 이는 내 서버가 어떤 이유로 헤더를 수락하지 않음을 의미합니다.
내 htaccess로 파일과 같이 보입니다 : 내 응용 프로그램을 테스트 이죠 REST 클라이언트를 사용하고
<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>
. 시스템에는 '[email protected]'이라는 이메일과 'admin12345'비밀번호가있는 사용자가 한 명 있습니다. POST
이러한 세부 사항을 /auth
경로에 전달하고 액세스 토큰을 부여한 다음 시스템에서 다른 리소스를 가져 오는 데 사용할 수 있습니다.
신청서는 here입니다. 내가 도대체 뭘 잘못하고있는 겁니까?