Ho il seguente flusso di lavoro nella mia domanda:Forzare un utente di scegliere un account tramite Google OAuth2
- utente accede mia app personalizzato
- utente fa clic su un pulsante per collegare il proprio account YouTube
- applicazione effettua una richiesta lato server utilizzando il listato di codice sotto
- utente viene reindirizzato al auth url google
A questo punto, una delle due cose accade:
[I mai desidera che questo comportamento] - Se l'utente è connesso in esattamente un account Google (vale a dire gmail, Google Apps per domini, ecc.) all'utente non viene mai chiesto di scegliere quale account collegare. Presuppone solo che vogliono usare quello in cui sono loggati e vanno avanti alla sua maniera allegra.
[I sempre desidera che questo comportamento] - non se l'utente è o registrato per qualsiasi account Google, o sono connessi a più di un account Google, allora gli viene chiesto di scegliere quale essi rappresentano Mi piacerebbe procedere con.
Domanda: C'è un modo per costringere l'utente a scegliere un account, anche se l'utente è attualmente connesso a un singolo account Google?
Codice:
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()
}
Non credo sia possibile accedere contemporaneamente a più di un account Google. –
http://stackoverflow.com/questions/14384354/force-google-account-chooser –