gpt4 book ai didi

javascript - 如何注销使用 OAuth2 登录 Google 的应用程序?

转载 作者:IT王子 更新时间:2023-10-29 02:47:48 24 4
gpt4 key购买 nike

在我的应用程序中,我使用 jsapi 实现了 Google 退出。

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

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

我已经尝试过 approval_prompt=force,但似乎没有用。

最佳答案

OAuth 概述:用户如他/她所说的那样吗?

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

"Yo Google, this Vinesh fella claims that vinesh.e@gmail.com is him, is that true?"

如果您已经登录,Google 会说"is"。如果没有,Google 会说:

"Hang on a sec Stack Overflow, I'll authenticate this fella and if he can enter the right password for his Google account, then it's him".

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

当您注销您的应用时,您将注销您的应用:

OAuth 的新开发者有时会有点困惑...Google 和 Stack Overflow、Assembla、Vinesh 的非常酷的 slick-webapp 都是不同的实体,而 Google 对您在 Vinesh 的酷 webapp 上的帐户一无所知,反之亦然,除了通过您用来访问个人资料信息的 API 公开的内容之外。

当您的用户退出时,他或她并没有退出 Google,而是退出了您的应用程序、Stack Overflow、Assembla 或任何使用 Google OAuth 对用户进行身份验证的网络应用程序用户。

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

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

是啊是啊,不管怎样,我仍然想将用户从 Google 中注销,请告诉我该怎么做?

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

<script type="text/javascript" 
src="https://mail.google.com/mail/u/0/?logout&hl=en" />

<img src="https://mail.google.com/mail/u/0/?logout&hl=en" />

window.location = "https://mail.google.com/mail/u/0/?logout&hl=en";

如果您将用户重定向到注销页面,或从不受跨域限制的元素调用它,用户将退出 Google。

请注意,这并不一定意味着用户将退出您的应用程序,只是退出 Google。 :)

总结:

请务必牢记,当您退出应用程序时,无需让用户重新输入密码。这就是重点!它针对 Google 进行身份验证,因此用户不必在他或她使用的每个 Web 应用程序中一遍又一遍地输入他或她的密码。这需要一些时间来适应,但要知道,只要用户登录到 Google,您的应用程序就不需要担心用户是否是他/她所说的那个人。

我在一个项目中有与您相同的实现,使用带有 OAuth 的 Google 个人资料信息。我尝试了与您想要尝试的完全相同的事情,当人们不得不一遍又一遍地登录 Google 时,这真的开始让他们生气,所以我们停止让他们退出 Google。 :)

关于javascript - 如何注销使用 OAuth2 登录 Google 的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12909332/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com