2012-04-12 2 views
0

예를 들어 Google 연락처가 필요하고 Google 캘린더가 필요한 두 가지 기능이 있다고 가정 해 보겠습니다.사용자에 대한 연속적인 승인시 OAuth 2의 인증 범위가 '스택'입니까?

첫 번째 기능이 많이 사용되어 사용자가 두 인증 범위를 모두 인증하도록 요청하면 결과가 크게 떨어집니다.

연락처 권한 범위가 바운드 된 사용자의 액세스 토큰을 저장하는 경우 나중에 해당 사용자에 대해 추가 인증 범위 일정을 요청하면 어떻게됩니까? 일정 범위 자격 증명만으로 새 토큰을 다시 가져 옵니까?

LiveConnect는 기존 범위를 대체하는 범위가 포괄 범위와 함께 새 토큰이되고 이전 토큰이 무효화됩니다.

답변

1

사용자가 authorization_code 또는 암시 적 부여 유형 플로우에 대해 말하는 것으로 가정하면, 새 범위가 사용자에 의해 권한 부여되어야합니다.

사용자 에이전트는 (지금) 필수 범위와 함께 권한 부여 서버의 권한 엔드 포인트로 전송됩니다. 필수 범위에는 필요한 전체 범위 (이전 및 신규)가 포함되어야합니다. 사용자는 요청 된 범위를보고 권한을 부여합니다. authorization_code 부여 유형의 경우 사용자의 범위에 대한 동의를 나타내는 새 액세스 토큰에 대한 권한 코드가 교환됩니다. 암시 적으로 URL 조각에 새 액세스 토큰을 반환하기 만하면됩니다. 어쨌든이 새로운 액세스 토큰은 기존 액세스 토큰보다 우선합니다.

새로 고침 토큰이있는 경우 - 새로 고침 토큰을 사용하여 새 액세스 토큰을 요청하면 요청되는 범위를 지정할 수 있습니다. 그러나 범위는 원래 범위의 하위 집합이어야합니다 (OAuth 2.0 spec section 6 참조). 사용자의 동의 없이는 확장 할 수 없습니다 (위의 흐름으로 가정).