Заставить пользователя выбрать аккаунт через Google OAuth2
У меня есть следующий рабочий процесс в моем приложении:
пользователь входит в мое пользовательское приложениепользователь нажимает кнопку, чтобы связать свой аккаунт YouTubeприложение делает запрос на стороне сервера, используя приведенный ниже кодпользователь перенаправлен на Google Auth URLВ этот момент происходит одна из двух вещей:
[Яникогда хочу такое поведение] - Если пользователь вошел только в одну учетную запись Google (например, gmail, Google Apps для доменов и т. Д.), Пользователю никогда не предлагается выбирать, какую учетную запись связать. Это просто предполагает, что они хотят использовать тот, в который они вошли, и продолжают свой веселый путь.
[Явсегда хочу такое поведение] - Если пользователь не вошел ни в одну из учетных записей Google или вошел в несколько учетных записей Google, его просят выбрать учетную запись, с которой он хотел бы продолжить.
Вопрос: Могу ли я заставить пользователя выбрать учетную запись, даже если в данный момент пользователь вошел в одну учетную запись Google?
Код:
private def getFlow() = {
if (flow == null) {
logger.info("Using OAuth client secrets file: " + GoogleOAuthService.CLIENT_SECRETS_JSON)
clientSecrets = GoogleClientSecrets.load(JacksonFactory.getDefaultInstance(),
new InputStreamReader(getClass.getResourceAsStream(GoogleOAuthService.CLIENT_SECRETS_JSON)));
redirectUri = clientSecrets.getDetails().getRedirectUris().get(0)
flow = new GoogleAuthorizationCodeFlow.Builder(
httpTransport, JacksonFactory.getDefaultInstance(), clientSecrets, SCOPES).setDataStoreFactory(
dataStoreFactory).setAccessType("offline").setApprovalPrompt("force").build()
}
flow
}
def newAuthorizationUrl(userId: String) = {
val urlRequest = getFlow().newAuthorizationUrl()
urlRequest.setAccessType("offline")
.setRedirectUri(redirectUri).setState(userId).build()
}