2017-03-13 5 views
0

그래서 개발중인 API가 있으며 서버의 요청을 완전히 완료하려면 사용자 인스턴스가 필요합니다. 측면.Laravel 5.4 특정 경로의 개인 액세스 토큰 사용을 제한하는 패스

궁금한 점은 laravel의 특정 경로를 제한하여 개인 액세스 토큰 대신 전체 oauth 토큰이 필요하다는 것입니다. 내가 이것을 걸러 낼 수있는 유일한 방법은 Token Scopes를 추가하는 것입니다. 차라리 범위를 추가하지 그러나 단지

답변

1

그럼 난 이해 .... 클라이언트 대

생각 ...

감사

CITTI을 개인 액세스 토큰의 사용을 필터링하기 개인 액세스 토큰은 특정 사용자에게 할당됩니다. 여기 docs에서이다 : 당신이 개인 액세스 클라이언트를 만든 후에

것은, 당신은 사용자 모델 인스턴스에 createToken 방법을 사용하여 특정 사용자에 대한 토큰을 발행 할 수있다.

개인 액세스 토큰은 특정 사용자에 대한 발행 :

Route::get('/user', function() { 
    return Auth::user(); 
})->middleware('auth:api'); 

그리고 정확한 것 응답 :

$user = App\User::find(1); 

// Creating a token without scopes... 
$token = $user->createToken('Token Name')->accessToken; 

이 방법, 당신은 /user 경로에 Bearer $token에 요청을하고 있습니다 PAT가 생성 된 사용자. 따라서 사용자가 API 서버에서 인증 된 경우 인증 된 사용자를 반환하는 미들웨어

+0

으로 경로를 보호하면됩니다. API는 상태가 없어야합니다. 아무도 기술적으로 로그인 할 수 없기 때문에 통과 된 토큰을 통해 구별해야합니다 ... – Citti

+0

Ok @Citti 그래서 사용자가 로그인하지 않고 api 요청을 통해이 경로에 액세스하려고 시도하면 'Unauthorized 401' 응답. 그래서이 경우에는 로그인 팝업을 보여줄 수 있습니다. –

+0

그래, 나는 그것을 얻지 만 오히려 그렇게하지는 않습니다. 내 응용 프로그램은 두 시나리오를 모두 올바르게 처리 할 수 ​​있습니다 ... 사용자를 대신하여 작업을 수행하려는 경우 클라이언트를 만들고 일반 oauth 프로세스를 수행하십시오. 데이터를 가져 오거나 사용자 작업이 필요없는 일부 생성 경로를 처리해야하므로 개인 액세스 토큰을 사용하십시오. 내가하고 싶은 일은 기존의 기존 워크 플로우를 대체하는 기능을 추가하는 것입니다. 나는 그들이 공격하려고하는 경로를 기반으로 하나 또는 다른 것을 사용하는 것을 막을뿐입니다. 경로 1은 개인 토큰 + oauth | Route2는 oauth – Citti