如何注销chrome.identity oauth提供程序

inf*_*ofo 12 oauth google-chrome-extension

我正在使用chrome.identity登录Chrome扩展程序中的第三方oauth提供程序.它适用于登录 - 当我使用launchWebAuthFlow时,我会看到第三方登录屏幕并在登录流程后重定向回我的应用程序.

但是,我找不到在我的扩展中启用注销功能的方法.似乎没有用于清除缓存的登录标识的功能.下次调用launchWebAuthFlow时,它会自动以第一个用户身份登录,而不会提示我再次登录.

有没有办法清除chrome.identity插件的登录状态?

小智 17

我不知道具体的第三方提供商.但是当我使用带有chrome.identity.launchWebAuthFlow()的Google Oauth时,我遇到了类似的问题.我可以登录用户,但不能使用removeCachedAuthToken()注销

在这种情况下,为了注销用户,我使用了chrome.identity.launchWebAuthFlow()和Google的注销URL而不是oauth URL

chrome.identity.launchWebAuthFlow(
    { 'url': 'https://accounts.google.com/logout' },
    function(tokenUrl) {
        responseCallback();
    }
);
Run Code Online (Sandbox Code Playgroud)

这非常有效.

  • 使用此方法时出现错误,chrome.runtime.lastError` =“需要用户交互” (3认同)
  • 我如何让它适用于 Facebook 注销?这对我不起作用:/ (2认同)

use*_*858 8

我发现按顺序调用这两个是可行的:

var url = 'https://accounts.google.com/o/oauth2/revoke?token=' + token;
window.fetch(url);

chrome.identity.removeCachedAuthToken({token: token}, function (){
  alert('removed');
});
Run Code Online (Sandbox Code Playgroud)


小智 5

您应该添加prompt=select_account到您的身份验证 URL。你的问题将会得到解决。

https://accounts.google.com/o/oauth2/auth?client_id= {clientId}&response_type=token&scope={scopes}&redirect_uri={redirectURL}&prompt=select_account