当前位置: 首页 > 面试题库 >

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

姬高扬
2023-03-14
问题内容

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

现在,我需要在我的应用程序中单击一个按钮的同时从Google登出该用户。如何使用JavaScript实现此功能,或者至少每次用户登录时它都必须询问Google登录页面。

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


问题答案:

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

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

“您是Google,这个Vinesh伙计声称他是vinesh.e@gmail.com,是真的吗?”

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

“等待一秒钟的堆栈溢出,我将验证这个家伙,如果他可以为他的Google帐户输入正确的密码,那就是他。”

输入Google密码后,Google会告诉Stack Overflow您是您的真实身份,然后Stack Overflow登录。

当你注销您的应用程序,你的记录了 您的 应用程序:

这是刚接触OAuth的开发人员有时会感到困惑的地方……Google和Stack
Overflow,Assembla,Vinesh的“非常酷”的webapp都是不同的实体,而Google对您在Vinesh凉爽的webapp上的帐户一无所知,反之反之亦然,除了用于访问个人资料信息的API所公开的内容外。

当您的用户注销时,他或她没有从Google注销,他/她正在注销您的应用程序,Stack Overflow或Assembla或任何使用Google
OAuth进行身份验证的Web应用程序。

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

话虽如此,您要执行的操作是将用户从真正不属于您的服务中注销。这样思考:作为用户,如果我用自己的Google帐户登录5种不同的服务,那么您会感到多么烦恼,那么当我第一次注销其中之一时,我必须登录到我的Gmail帐户再次因为那个应用程序开发人员决定,当我注销他的应用程序时,我也应该注销Google吗?这真的会很快变老。简而言之,您
真的不想这样做

是的,无论如何,我仍然想从Google登出该用户,只是告诉我该怎么做?

话虽如此,如果您 仍然
希望将用户从Google登出,并意识到您很可能会破坏他们的工作流程,则可以通过其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登出。:)



 类似资料:
  • 我有一个通过Google登录Spring Boot OAuth2的Auth Server实现。以及用于我的后端数据服务的资源服务器。我使用了JDBC令牌库。一切都很好。但我很难理解注销的实现。目前,每当用户单击注销时,我只会从浏览器本地存储中删除令牌,但会话在身份验证服务器中保持活动状态,因此我不需要再次登录。我想要的是,每当单击注销时,我都想使会话无效,并迫使他再次登录。 有什么好的方法可以做到

  • 问题内容: 一个非常简单的要求。登录Web J2EE 6应用程序后,如何再次使用户注销? 我见过的大多数(全部?)书籍和教程都展示了如何在其应用程序中添加登录/登录错误页面,以及使用“ j_security_check”方法演示了安全主体/角色/领域等的使用-都很好。但是还不清楚如何赋予用户注销权限。确实,如何在会话超时等之后强制注销? 问题答案: 您应该使用以下方法使会话无效: 在Servlet

  • 用户登录 在用户登录App账号时调用以下登录方法,从而保证用户是以登录身份进行咨询,是区分会话的用户的唯一标识; 游客咨询不需要调用小能login方法,小能会自动生成一个游客身份标识,在客服端游客身份的用户名显示为:“游客+4位数字”。 App完全退出(被杀掉进程), 再次进入时, 在SDK初始化之后, 如果App本身账号是登录用户, 需要重新调用小能SDK登陆接口,同步用户身份【大多是针对App

  • 登录与注销 用户登录 在App登录的地方,调用小能的login方法,目的是传递账号信息,为客服端显示用户信息。在App被杀死之后,sdk会保持用户的登录状态,不需要再次调用登录的方法。 uid作为用户的唯一标识需要保证唯一性,username可根据需要传入手机号、昵称等信息 /** * @param uid 必填,登录用户的id, 只能输入数字、英文字母和"@._—"四种字符,长度小于等于60位

  • 问题内容: 我应该如何向我的Django网站添加Google+ API登录? 问题答案: 首先,你必须为Google+创建OAuth凭据。 转到Google Developer Console 创建一个新项目。 转到“ API和身份验证”->“授权屏幕”,并为你的产品命名。点击“保存”。 转到“ API和身份验证”->“凭据”。在“ OAuth”下,单击“创建新的客户端ID”。添加“ http:/