Laravel과 API REST를했는데 이제이를 사용하려고합니다. API에서 사용자를 인증해야하며 Password Grant 메소드를 사용하고 있습니다. 사용자를 올바르게 인증 할 수는 있지만 액세스 토큰을 얻을 수는 있지만 사용중인 응용 프로그램에서 액세스 토큰을 사용하여 인증 된 사용자를 검색하는 방법은 없습니다. 인증 된 사용자에게 Laravel Passport를 부여하고 비밀번호를 부여하십시오.
는이 같은 경로로 API에서 시도하지 :Route::get('/user', function(Request $request) {
$user = $request->user();
// Even with
$user = Auth::user();
return $user;
});
없음 주사위. 나는 여권 코드를 읽었으나 알아낼 수는 없다.
- I : 내 생각 엔 Laravel 여권 교부 형의 종류를 제공하지 않는 것 때문에 나는이 일을 명확히하기 위해 ... 새로운 가드 유형 또는 무언가를 지정
을해야한다는 것입니다 oAuth2 서버 인 API REST 애플리케이션이 있습니다.
- API REST를 사용하는 다른 응용 프로그램이 있습니다.
- 워크 플로를 알고 있습니다. 필자의 경우, 암호 사용 권한을 통해 사용자 응용 프로그램에서 사용자 자격 증명을 얻은 다음 grant_type에서 암호을 지정하는/oauth/토큰에 대한 요청을 내 클라이언트 자격 증명과 함께 제공합니다. 나는 그들이 생성 된 확신 "PHP 장인 여권 : 클라이언트가을 --password"합니다 (--password 옵션을 참고)
- 나는 아무런 문제 토큰 액세스 할 수 있습니다. 지금 필요한 것은 API REST에서 방금 인증 한 사용자의 JSON 표현을 얻는 것입니다. 하지만 여기에 문제가 있습니다 : 액세스 토큰이 있습니다. 내가 사용자와 관련시킬 수있는 것은 아무것도 없다.
또는 그럴 수 있습니까? 아마 I는 인증 된 사용자 ... * 전구가 온 상기 생성 된 액세스 토큰을 관련시키는 암호 허가 요청을 인증하는 방법을 확장 할 수 *
소비 애플리케이션 테스트 코드 :
try {
$client = new Client();
$result = $client->post('https://myapi.com/oauth/token', [
'form_params' => [
'grant_type' => 'password',
'client_id' => '5',
'client_secret' => 'my_secret',
'username' => 'user_I_am_authenticating',
'password' => 'the_user_password',
'scope' => '',
]
]);
$access_token = json_decode((string) $result->getBody(), true)['access_token'];
$result = $client->get('https://myapi.com/client/user', [
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => "Bearer $access_token",
]
]);
return (string) $result->getBody();
} catch (GuzzleException $e) {
return "Exception!: " . $e->getMessage();
}
https://myapi.com/client/user 경로는 API에서 테스트하기 위해 만든 경로입니다. 이 경로는 다음과 같이 정의됩니다.
Route::get('/user', function(Request $request) {
return $request->user();
});
Now. 나는 이것이 작동하지 않는다는 것을 안다. 이것이 내가 원하는 것입니다. access_token/bearer_token을 가진 요청을하는 사용자를 알 수 있습니다.
감사합니다.
내 게시물에 "안녕하세요"또는 "안녕하세요"라고 말할 수 없습니다! 하하 –
클라이언트 측 코드와 오류를 추가 하시겠습니까? 404인가요? –
코드를 추가 할 수 있습니다. 그러나 내가 말했듯이, 나는 어떤 오류도 없다. API에서 원하는 경로로 요청합니다. API 경로에서 클라이언트를 대신하여 클라이언트가 요청을한다는 것을 알고 싶습니다. –