2017-04-06 3 views
1

현재 프로젝트에서 Passport를 사용할 때 항상 "Unauthenticated error"가 표시됩니다. 그건 내가 3 일 동안 지속 무슨 짓을했는지 :Laravel 5.3 + Passport : 항상 인증되지 않은 오류

  • 설치하고 여권을 구성을 우체부와
  • 요청 토큰 (암호 부여 토큰) (문서가 말한대로)
  • 요청 보호 경로 (인증 : API 미들웨어) 토큰과 함께
  • `{ "오류": "인증되지 않음". }`
  • 검색 및 검색과 연구
  • 는 `{ "오류"가져 오기 "인증되지 않은." }`

그런 다음 새로운 L5.3 및 새로운 DB를 설치하고 정상적으로 작동합니다. 현재의 DB에서도! 내가 성공하지 않고있는 모든 솔루션을 시도했습니다

은 ...

누구든지 나를 도울 수

? 어떤 아이디어라도 감사 할 것입니다.

감사합니다.

답변

1

나는 당신과 같은 문제가있어 해결책을 찾기 위해 사방을 보았습니다.

필자의 경우 아파치의 잘못으로 보였다. 아파치는 "Authorization : Bearer TOKEN_HERE"헤더를 삭제하여 auth : api가 예상대로 작동하지 않게되었습니다 (권한이 부여되지 않음).

RewriteCond %{HTTP:Authorization} ^(.*) 

RewriteRule .* - [e=HTTP_AUTHORIZATION:%1] 

을 그리고 그것은 마술 일 :

우리는 우리의 .htaccess에 추가하려고까지했다.

정말 도움이되기를 바랍니다. 하루 종일 많은 솔루션을 사용해 보았습니다. 이것이 우리에게 도움이되었습니다.

+0

나와 작동하지 않습니다. – vietnguyen09

1

이 토큰을 생성하는 데 사용하신 사람이 grant_type입니까?

1을 다음과 같이

가능한 해결 방법은 다음과 같습니다 당신이 당신의 access_token이를 생성하는 클라이언트 자격 증명을 사용하는 경우 다음과 같이, 당신은 client_credentials 켜 미들웨어 있습니다.

1.1도 경로에 Kernel.php

'client_credentials'  => \Laravel\Passport\Http\Middleware\CheckClientCredentials::class, 

1.2 사용 'client_credentials'미들웨어 \ \ 응용 프로그램에서 routeMiddleware \는 HTTP에 추가합니다.

Route::group(['prefix' => 'v1','middleware' => 'client_credentials'], function() { 

    // Your routes here 

}); 

2 : 그랜트 비밀번호 입력

2.1의 경우 : 그랜트 클라이언트

PHP는 장인 여권 암호 만들기 : 클라이언트는

2

을 --password.2 : 다음 헤더 필드와 토큰을 요청

'grant_type' => 'password', 
    'client_id' => 'client-id', 
    'client_secret' => 'client-secret', 
    'username' => '[email protected]', 
    'password' => 'my-password', 

엔드 포인트/OAuth를/토큰

당신이 당신의 API에 대한 액세스 권한을 부여해야 지금 얻을 토큰.