我不确定您是否使用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服务的一个注销按钮动态构建注销网址,然后使用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登出。:)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)