【发布时间】:2018-01-07 15:39:10
【问题描述】:
我正在开发一些客户端 Web 应用程序,例如需要访问 Outlook 邮件和日历的 chrome 扩展程序。我按照https://dev.outlook.com/RestGettingStarted 上的说明成功获取了访问和刷新令牌以检索数据。
但是,我找不到任何实现“注销”的方法。基本思想是让用户退出并使用不同的 Outlook 帐户登录。为了做到这一点,我删除了缓存的令牌,以交互模式请求访问令牌。登录窗口确实弹出了,但它使用了任何有效的电子邮件地址,没有让我输入密码,最后返回了以前帐户的令牌。因此,在旧令牌过期之前,我无法真正使用其他帐户。
谁能告诉我是否可以发送撤销令牌的请求,以便人们可以使用不同的帐户?谢谢!
================================================ ========== 更新: 实际上这是 chrome.identity api 的错。我使用 chrome.identity.LaunchWebAuthFlow 来初始化身份验证流程。它缓存用户的身份,但无法删除它。因此,如果使用此 api,我们不能真正“注销”。
【问题讨论】:
-
你能分享你的代码,让我们看看发生了什么吗?
-
您是否尝试过将用户重定向到login.microsoftonline.com/logout.srf
-
看来是我用来启动身份验证流程的 chrome.identity.LaunchWebAuthFlow 的问题。它缓存用户的身份,但不提供任何删除它的方法。如果您键入不同的帐户,chrome 会坚持使用旧帐户。有一个旧线程 (stackoverflow.com/questions/26080632/…) 谈论这个问题,但没有一个解决方案有效。
-
基本是this issue,去star吧。
-
我最终放弃了 LaunchWebAuthFlow api,原因有两个。第一个如上所述;第二个是它甚至没有带有“https://***”链接的地址栏,看起来很吓人。相反,我只是创建一个带有用于登录的 url 的新选项卡,并监听重定向事件以从重定向 url 获取令牌。
标签: google-chrome-extension oauth-2.0