Aggiornamento
il miglior modo sostenuto per prevenire l'accesso automatico è quello di utilizzare il metodo API gapi.auth2.getAuthInstance().signOut()
che impedirà l'accesso automatico sul tuo sito dopo che è stato chiamato. Demo here.
Nella demo, l'utente viene disconnesso quando lasciano la pagina come illustrato nel codice seguente:
window.onbeforeunload = function(e){
gapi.auth2.getAuthInstance().signOut();
};
Ora, ogni volta che l'utente esce dal sito (ad esempio chiude la finestra, naviga via), verranno disconnessi e il pulsante di accesso non attiverà l'accesso finché l'utente non farà clic.
Non ti consiglio di farlo nella tua implementazione, ma invece permetti all'utente di uscire esplicitamente quando non desiderano più essere registrato. Inoltre, il mio esempio è una demo, probabilmente lo fai non voler disconnettere l'utente automaticamente ogni volta che lascia il tuo sito.
originale Messaggio
In primo luogo, non si dovrebbe usare i dati-approvalprompt = "forza", come questo farà sì che subtokens più autorizzate da emettere alla tua applicazione/cliente ed è progettato per essere utilizzato in scenari in cui l'utente deve essere nuovamente autorizzato dopo che le credenziali sono state perse dal lato server.
In secondo luogo, probabilmente non si desidera avere il comportamento in cui l'utente deve fare clic per accedere perché sono già "connessi" al proprio account Google e potrebbe essere fonte di confusione per accedere (o attivare il segno -in) di nuovo, separatamente, per il tuo sito.
Se si voleva davvero fare questo, è necessario eseguire un esplicito rendono per il pulsante signin ma non avrebbe fatto la chiamata a gapi.signin.render come documentato nella Google+ sign-in documentation finché non si è consapevoli del fatto che l'utente non automaticamente ottenere firmato nel
il codice seguente mostra come abilitare esplicitamente rendering del pulsante di accesso:.
<script type="text/javascript" src="https://apis.google.com/js/plusone.js">
{"parsetags": "explicit"}
</script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<head>
<script type="text/javascript">
var token = "";
function onSigninCallbackVanilla(authResponse){
// in a typical flow, you show disconnect here and hide the sign-in button
}
il codice seguente mostra come eseguire il rendering in modo esplicito il tasto:
0.123.
Come stai comunicando che l'utente è disconnesso dal tuo sito probabilmente cambierà da sito a sito, ma un approccio potrebbe essere quello di impostare un cookie che indica lo stato "disconnesso" per un utente e quindi usando questo come trigger per bloccare il carico esplicito. Il comportamento diventa un po 'più complicato quando un utente visita il tuo sito e ha disabilitato i cookie o utilizza un browser separato e connesso. Per risolvere il problema, potresti fare qualcosa di complicato come interrogare lo stato dell'utente dal tuo server su XHR sul callback di accesso e fingere di non sapere che l'utente ha effettuato l'accesso a Google+.
Può comunque cambiare il formato del pulsante, guarda nella mia domanda: http://stackoverflow.com/questions/21984213/google-plus-sign-in-in-checkbox – Bazinga
window.onbeforeunload non funziona su chrome perché così ? hai affrontato lo stesso problema – Vartika
Usa questo se usi la nuova firma di google nella api: '' 'gapi.auth2.getAuthInstance(). signOut()' '' –