Descripción general de OAuth: ¿Es el usuario quien dice ser ?:
No estoy seguro de si usó OAuth para iniciar sesión en Stack Overflow, como la opción "Iniciar sesión con Google", pero cuando usa esta función, Stack Overflow simplemente le pregunta a Google si sabe quién es usted:
"Yo, Google, este tipo de Vinesh afirma que vinesh.e@gmail.com es él, ¿es cierto?"
Si ya inició sesión, Google dirá SÍ. Si no, Google dirá:
"Espere un segundo Stack Overflow, autenticaré a este tipo y si puede ingresar la contraseña correcta para su cuenta de Google, entonces es él".
Cuando ingresa su contraseña de Google, Google le dice a Stack Overflow que es quien dice ser, y Stack Overflow lo conecta.
Cuando cierra la sesión de su aplicación, está cerrando la sesión de su aplicación:
Aquí es donde los desarrolladores nuevos en OAuth a veces se confunden un poco ... Google y Stack Overflow, Assembla, la aplicación web muy elegante y elegante de Vinesh son entidades diferentes, y Google no sabe nada sobre su cuenta en la aplicación web genial de Vinesh, y viceversa. viceversa, aparte de lo que se expone a través de la API que está utilizando para acceder a la información del perfil.
Cuando su usuario cierra sesión, él o ella no se desconecta de Google, él / ella está desconectando su aplicación, o Stack Overflow, o Assembla, o cualquier aplicación web que use Google OAuth para autenticar al usuario.
De hecho, puedo cerrar sesión en todas mis cuentas de Google y aún así iniciar sesión en Stack Overflow. Una vez que su aplicación sepa quién es el usuario, esa persona puede cerrar la sesión de Google. Google ya no es necesario.
Dicho esto, lo que está pidiendo hacer es desconectar al usuario de un servicio que realmente no le pertenece. Piénselo así: Como usuario, ¿qué tan molesto crees que estaría si iniciara sesión en 5 servicios diferentes con mi cuenta de Google, luego la primera vez que me desconecté de uno de ellos, tengo que iniciar sesión en mi cuenta de Gmail? nuevamente porque el desarrollador de la aplicación decidió que, cuando cierre la sesión de su aplicación, también debería cerrar la sesión de Google? Eso envejecerá muy rápido. En resumen, realmente no quieres hacer esto ...
Yeh yeh, lo que sea, todavía quiero desconectar al usuario de Google, solo dime ¿cómo hago esto?
Dicho esto, si aún desea cerrar la sesión de un usuario en Google y se da cuenta de que es muy posible que esté interrumpiendo su flujo de trabajo, puede crear dinámicamente la URL de cierre de sesión desde uno de los botones de cierre de sesión de los servicios de Google y luego invocarlo usando un elemento img o una etiqueta de script:
<script type="text/javascript"
src="https://mail.google.com/mail/u/0/?logout&hl=en" />
O
<img src="https://mail.google.com/mail/u/0/?logout&hl=en" />
O
window.location = "https://mail.google.com/mail/u/0/?logout&hl=en";
Si redirige a su usuario a la página de cierre de sesión, o lo invoca desde un elemento que no está restringido entre dominios, el usuario cerrará la sesión de Google.
Tenga en cuenta que esto no significa necesariamente que se cerrará la sesión del usuario en su aplicación, solo en Google. :)
Resumen:
Lo que es importante que tenga en cuenta es que, cuando cierra la sesión de su aplicación, no es necesario que el usuario vuelva a ingresar una contraseña. ¡Ese es todo el punto! Se autentica contra Google para que el usuario no tenga que ingresar su contraseña una y otra vez en cada aplicación web que utiliza. Se necesita algo de tiempo para acostumbrarse, pero sepa que, siempre que el usuario esté conectado a Google, su aplicación no tiene que preocuparse por si el usuario es o no quien dice ser.
Tengo la misma implementación en un proyecto que tú, usando la información del perfil de Google con OAuth. Probé exactamente lo mismo que estás buscando probar, y realmente comenzó a enojar a la gente cuando tuvieron que iniciar sesión en Google una y otra vez, así que dejamos de desconectarlos de Google. :)