如何注销使用 OAuth2 登录 Google 的应用程序? [英] How to Logout of an Application Where I Used OAuth2 To Login With Google?

查看:24
本文介绍了如何注销使用 OAuth2 登录 Google 的应用程序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的应用程序中,我使用 jsapi 实现了 Google 注销.

我使用了网址 https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=xxxxxx 连接到 Google,然后 https://www.googleapis.com/plus/v1/people/xxxxxx 从谷歌个人资料中获取用户数据.

现在,我需要在单击应用程序中的按钮时从 Google 注销用户.我如何在 JavaScript 中实现这一点,或者至少每次用户登录时它都必须询问 Google 登录页面.

我尝试了 approval_prompt=force,但似乎不起作用.

解决方案

OAuth 概述:用户是他/她所说的吗?:

我不确定您是否使用 OAuth 登录 Stack Overflow,例如使用 Google 登录"选项,但是当您使用此功能时,Stack Overflow 只是询问 Google 是否知道您是谁:

<块引用>

Yo Google,这个 Vinesh 家伙声称 vinesh.e@gmail.com 是他,这是真的吗?"

如果您已经登录,Google 会说是".如果没有,Google 会说:

<块引用>

等一下 Stack Overflow,我会验证这个家伙的身份,如果他可以为他的 Google 帐户输入正确的密码,那就是他".

当您输入 Google 密码时,Google 会告诉 Stack Overflow 您就是您所说的那个人,然后 Stack Overflow 会让您登录.<​​/p>

当您退出应用程序时,您将退出您的应用程序:

这里是 OAuth 新手有时会感到困惑的地方... Google 和 Stack Overflow、Assembla、Vinesh's-very-cool-slick-webapp 都是不同的实体,而 Google 对您在 Vinesh 的酷 Web 应用程序上的帐户一无所知,反之亦然,除了通过您用来访问个人资料信息的 API 公开的内容.

当您的用户退出时,他或她不是在退出 Google,而是在退出您的应用程序、Stack Overflow、Assembla 或任何使用 Google OAuth 进行身份验证的 Web 应用程序用户.

事实上,我可以退出我所有的 Google 帐户,但仍然可以登录 Stack Overflow.一旦您的应用知道用户是谁,该用户就可以退出 Google.不再需要 Google.

话虽如此,您要求做的是将用户从真正不属于您的服务中注销.可以这样想:作为用户,如果我使用 Google 帐户登录 5 个不同的服务,您认为我会有多生气,然后我第一次退出其中一个服务时,我必须登录我的 Gmail 帐户又是因为那个应用程序开发人员决定,当我退出他的应用程序时,我也应该退出谷歌?那真的会老得很快.简而言之,您真的不想这样做...

嗯嗯,不管怎样,我还是想让用户退出 Google,告诉我该怎么做?

话虽如此,如果您仍然想要从 Google 注销用户,并且意识到您很可能会破坏他们的工作流程,您可以从他们的其中一个动态构建注销 URLGoogle 服务注销按钮,然后使用 img 元素或脚本标记调用该按钮:





        
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆