1

파이썬/플라스크를 사용하여 웹 서버 앱에 Google OAuth2 로그인 흐름을 구현했습니다. 내 앱은 사용자를 Google로 리디렉션합니다. 사용자는 Google 자격 증명으로 로그인하고 앱으로 돌아갑니다.Google OAuth2 로그인을 사용하는 앱에서 사용자를 로그 아웃하는 방법은 무엇입니까?

이 앱의 로그 아웃 기능을 구현하는 방법을 결정하는 데 문제가 있습니다. 앱의 세션 쿠키를 지울 수는 있지만 사용자가 Google a/c에서 로그 아웃하지 않습니다. 따라서 사용자가 로그 아웃 한 후 로그인을하면 리디렉션이 Google로 이동하고 사용자는 Google에 계속 로그인되어 있기 때문에 사용자는 자동으로 (자격 증명을 다시 입력하라는 메시지가 표시되지 않음) 내 앱에 다시 서명됩니다.

This SO answer here은 사용자가 모든 Google 서비스에서 로그 아웃해야하는 이유는 무엇입니까? 나쁜 연습. 그게 유일한 길이면, 내가 할게,하지만 더 우아한 해결책이 있다고 가정하고있어?

FWIW, Google 액세스 토큰도 '취소'되지 않습니다. 내 앱은 OAuth2 (see this doc)에 profileemail 범위를 사용합니다. 사용자가 명시 적으로 '권한 부여'할 필요는 없으므로 로그인 할 때 사용자에게 강제로 다시 로그인하도록하는 이러한 범위에 대한 액세스 권한을 취소하는 등의 작업은 없습니다.

OAuth2 흐름 기능을 구현하는 데 도움이되는 경우 mostly this doc을 사용했습니다. 코드를 게시 할 수는 있지만 (1)이 기사에 모두 나와 있습니다. (2) 익숙하지 않은 경우가 아니라면이 질문에 대답하는 것과 관련이 없어야합니다.

의견을 보내 주시면 감사하겠습니다.

+1

(구글 귀하의 경우). 언제, 어떻게, 언제, 얼마나 자주 인증 서버가 사용자를 확인하는지는 자체 결정입니다. 결국 그것은 응용 프로그램을 승인 한 것이지 다른 방법으로는 승인하지 못했습니다. 그리고 사용자가 앱 토큰을 취소 할 때까지 그렇게 할 것입니다. 사용자 측에서 토큰을 무효화하면 권한 서버에서 사용자의 신뢰 상태에 영향을 미치지 않습니다. –

+1

@KlausD. 그건 사실이고, 나는 너와 동의한다. ** 따라서, 내 문제에 대한 해결책이 아닌가? ** (이 기사 [https://stackoverflow.com/questions/12909332/how-to-logout-start-policy-policy.aspx] 끝 부분에 제안 된 지저분한 일을하는 것 이외에는 of-an-application-where-i-used-oauth2-to-go-with-google). –

+0

어쨌든 * 문제가 어땠습니까? –

답변

0

다음 링크를 참조하여 앱에 할당 된 토큰을 취소 할 수 있습니다. 이렇게하면 앱에서 사용자가 로그 아웃되지만 Google에 계속 로그인하게됩니다. 귀하의 게시물에서 언급 한 동일한 링크에 언급되어 있습니다. 당신이 인증 서버의 아웃 명을 기록하지 않는 OAuth를에서

https://developers.google.com/identity/protocols/OAuth2WebServer#tokenrevoke

+0

내 질문을 제대로 읽으면 revoke()가 작동하지 않는 이유와 Google에서 사용자를 서명해야하는 이유를 언급했지만 우아한 방법을 원합니다. –

관련 문제