2016-06-08 14 views
0

권한 부여 유형 리소스 소유자 비밀번호 자격 증명과 함께 oauth2를 사용하는 클라이언트 응용 프로그램이 있습니다. 사용자가 자신의 자격 증명을 제공 할 때 액세스 토큰을 얻기 위해 컬 (curl) http 요청을 작성하지만 첫 번째 자격이 만료되면 다른 액세스 토큰을 요청하는 방법. 액세스 토큰의 유효성을 평가하는 것이 좋습니다. I found this client library하지만 새로 고침 토큰이 만료되거나 새로 고침 토큰이 만료 된 경우에도 새 액세스 토큰을 요청하는 것과 관련된 문제는 해결할 수 있다고 생각하지 않습니다.OAuth 2.0 처리 클라이언트에서 토큰 만료

누구든지 올바른 방향으로이 방법을 구현하거나 라이브러리를 사용하는 방법을 알려주십시오.

답변

0

모든 리소스 요청에 대해 토큰 만료를 확인하는 대신 토큰 만료 오류를 처리하고 새로 고침 토큰 요청을 수행하여 새 액세스 토큰을 얻을 수 있습니다.

oAuth 서버는 액세스 토큰이 유효하지 않거나 만료되거나 취소 될 때 일반적으로 응답에서 invalid_grant를 언급해야합니다. here을 참조하십시오. 토큰이 만료되었을 때 정확히 어떤 응답을 제공하는지 oAuth 서버에 확인해야합니다.

일부 라이브러리에는이 기능이 포함되어 있지만 언급 한 라이브러리를 찾을 수 없습니다. 나는 Retrofit을 자바 클라이언트로 사용했다. 언급 한 라이브러리에 대해이 기능을 요청할 수 있습니다.

새로 고침 토큰이 만료되면 oAuth 인증 절차가 다시 시작됩니다.

0

수신 한 OAuth2 토큰의 기간은 그 기간을 갖습니다. 각 토큰은 설정된 시간이 지나면 만료되며 해당 정보는 수신 한 객체의 일부로 다시 전송됩니다. 따라서 로컬에 저장하고 만료 시간이 경과 할 때까지 다시 사용할 수 있습니다. 다른 토큰

  • 기존 토큰을 새로 고침

    1. 요청 : 기한이 만료되면 은 두 가지 옵션이 있습니다. 많은 OAuth2 제공자가이 기능을 제공합니다.

    유일한 질문은 사용하고있는 라이브러리에 기본 제공되는 것입니다. 어쩌면 직접 추가 할 수 있습니다. 당신이 토큰을 저장하려면

    편집

    어딘가에 다음 세션 작동합니다. 호스트 자체에서 설정된 제한 시간 만료에 도달하면 사용자가 브라우저 비트를 닫을 때 세션이 만료되지 않습니다. 앱을 나중에 다시 열면 공정하게 진행하려면 다시 로그인해야합니다. 그러면 다른 토큰을 요청할 수 있습니다. 새로 고침 토큰 기능을 사용하기로 결정한 경우 데이터베이스 자체에 저장하고 세션 기반의 장기적인 작업이 아니므로이 작업을 데이터베이스에서 사용하는 것이 좋습니다.

  • +0

    은 액세스 토큰과 만료 시간을 저장하는 좋은 선택입니까? 하지만이 경우 사용자가 브라우저를 닫으면 다시 인증해야합니다. 쿠키를 사용하여 사용자 인증을 기억할 수 있습니다. 나는 옳고 그름을 말하는거야? –