2017-04-21 11 views
1

Google OAuth2를 통해 여러 계정을 승인했습니다. 내가 승인 한 계정 목록을 얻으려면 어떻게해야합니까? 액세스 권한을 취소 할 수 있기를 원합니다.Google OAuth2 승인 계정 받기

OAuth2 흐름을 여러 번 반복하면서 각기 다른 계정을 선택합니다. 그런 다음 액세스/새로 고침 토큰을 가져와 내 데이터베이스에 저장합니다. 이를 통해 최신 계정뿐만 아니라 이전에 승인 된 계정에 연결된 리소스에도 액세스 할 수 있다는 것을 알게되었습니다. 목록에 표시하고 내 사용자가이 계정에 대한 액세스 권한을 취소 할 수있게하고 싶습니다.

+0

"액세스/새로 고침 토큰을 가져와 내 데이터베이스에 저장"이라고 말하면 모든 새로 고침 토큰을 저장 하시겠습니까? 아니면 일부만 저축하고 다른 사람들을 버리고 있습니까? 귀하의 질문은 후자를 의미하지만, 나는 왜 당신이 승인을 요청하고 토큰을 저장하지 않는지 이해하지 못합니다. – pinoyyid

+0

@pinoyyid 모든 사용자마다 고유 한 토큰이 있습니다. OAuth2 인증을 수행 할 때마다 새 토큰이 기존 토큰을 덮어 씁니다. 일부 리소스는 여러 토큰으로 액세스 할 수있는 것처럼 보이기 때문에 혼란 스럽습니다. 내 문제인지 또는 API (GMB API)가 그렇게 설계되었는지 확실하지 않습니다. 나는 또한 여기에 게시했습니다 : https://www.en.advertisercommunity.com/t5/Google-My-Business-API/Designing-application-for-multiple-users/td-p/1121514 –

+0

당신은 "토큰"을 의미합니다. Google Oauth에는 새로 고침 토큰이 있으며 액세스 토큰이 있습니다. 이들은 다른 목적과 특성을 가지고 있습니다. 질문을 편집하여 저장할 토큰을 구체적으로 지정할 것을 제안 할 수 있습니까? 또한 "사용자"와 "계정"이 의미하는 것을 명확히하십시오. Google에서는 user = account이지만 사용자가 둘 이상의 계정을 가지고 있다고 말하는 것 같습니다. 다시 말하면 질문에 더 많은 정보를 추가 할 수 있다면 도움이 될 것입니다. – pinoyyid

답변

0

응용 프로그램을 인증 한 사용자의 목록을 가져올 방법이 없습니다. 나에게는 내가 업그레이드해야한다고 알리기를 원하는 아주 오래된 버전의 응용 프로그램을 여전히 사용하고있는 수많은 사용자가 있기 때문에이 문제가 발생합니다. 그러나 나는 그들과 연락이 없으므로 위선적으로 말하지 않습니다. 알려진 사용자의

해지 액세스 : 당신이 그것을 할 수있는 권한이 원하는대로

응용 프로그램이 많은 사용자를 가질 수 있습니다. 새로 고침 토큰을 통해 각 사용자 데이터에 액세스 할 수 있습니다. 사용자가 해지하거나 새로 고침 토큰을 6 개월 동안 사용하지 않을 때까지 액세스가 유지됩니다.

당신은 사용해보십시오 revoking the token

에 의해 programmaticly을 취소 할 수 있습니다 :

$client->revokeToken(); 

이 사용자에 의해 주어진 된 액세스 권한을 취소합니다. 물론 클라이언트에 이전 새로 고침 토큰을로드해야합니다.

+0

당신의 대답은 전체 토큰 만 취소 할 수 있다고 제안하는 것 같습니다. 명확한 설명을 위해 내가 묻는 바는 : 애플리케이션 (단일 토큰 보유)의 사용자는 여러 개의 Google 계정을 사용하여 OAuth2를 거쳐 여러 계정으로 다양한 서비스에 대한 액세스 권한을 "인증"할 수 있습니다. 하지만이 토큰에 연결된 일부 Google 계정을 선택적으로 "인증 해제"할 수 있기를 바랍니다. 그게 가능하지 않니? –

+0

사용자가 응용 프로그램을 인증하면 단일 Google 계정으로 연결됩니다. 각 Google 계정에는 새로 고침 토큰이 할당되어 있습니다 (단일 사용자의 경우 몇 가지 미해결 새로 고침 토큰이 실제로있을 수 있습니다). 리포지토리를 취소하려면 새로 고침 토큰이 필요합니다. 실제 Google 계정이 아닙니다. 다른 Google 계정의 새로 고침 토큰을 추적하지 않으면 원하는 작업을 수행 할 수 없습니다. – DaImTo

+0

그의 토큰이 하나의 Google 계정에 묶여 있음을 명확히합니다. – DaImTo