chrome.identity.LaunchWebAuthFlow:如何使用oauth2在Web应用程序中实现注销

时间:2016-02-12 09:05:33

标签: google-chrome-extension oauth-2.0

我正在开发一些客户端网络应用,例如需要访问Outlook邮件和日历的Chrome扩展程序。我按照https://dev.outlook.com/RestGettingStarted上的说明操作,成功访问并刷新令牌以检索数据。

但是,我找不到任何实施" logout"的方法。基本的想法是让用户注销并使用不同的Outlook帐户登录。为了做到这一点,我删除了缓存的令牌,请求以交互模式访问令牌。登录窗口确实弹出,但它占用了任何有效的电子邮件地址,没有让我输入密码,最后返回以前帐户的令牌。因此,在旧令牌过期之前,我无法真正使用其他帐户。

有人可以告诉我是否可以发送撤销令牌的请求,以便人们可以使用其他帐户?谢谢!

=============================================== ========== 更新: 实际上这是chrome.identity api的错。我使用chrome.identity.LaunchWebAuthFlow来初始化auth流程。它缓存用户的身份但无法删除它。所以我们不能真的"退出"如果使用这个api。

1 个答案:

答案 0 :(得分:0)

我通过launchWebAuthFlow使用了两次注销 - 首先我调用了我的应用程序的注销链接,然后我调用了注销链接到谷歌。

var options = {
    'interactive': false,
    'url': 'https://localhost:44344/Account/Logout'
}
chrome.identity.launchWebAuthFlow(options, function(redirectUri) {});

options = {
    'interactive': false,
    'url': 'https://accounts.google.com/logout'
}
chrome.identity.launchWebAuthFlow(options, function(redirectUri) {});