2016-02-12 27 views
0

我正在使用某些客戶端Web應用程序,例如需要訪問Outlook郵件和日曆的Chrome擴展。我遵循https://dev.outlook.com/RestGettingStarted的指示,併成功獲取並刷新標記以檢索數據。chrome.identity.LaunchWebAuthFlow:如何使用oauth2在Web應用程序中實現註銷

但是,我找不到任何方法來實現「註銷」。基本的想法是讓用戶註銷並使用不同的Outlook帳戶登錄。爲了做到這一點,我刪除了緩存的令牌,請求以交互模式訪問令牌。登錄窗口彈出,但它採取任何有效的電子郵件地址,不讓我輸入密碼,並最終返回以前的帳戶令牌。所以在舊的令牌過期之前,我無法真正使用其他帳戶。

任何人都可以告訴我,如果有可能發送撤銷令牌的請求,以便人們可以使用不同的帳戶?謝謝!

============================================== =========== 更新: 其實這是chrome.identity api的錯。我使用chrome.identity.LaunchWebAuthFlow來初始化認證流程。它會緩存用戶的身份,但無法刪除它。所以如果使用這個API,我們不能真正的「註銷」。

+0

你能分享你的代碼,以便我們可以看到發生了什麼? – Tdelang

+0

您是否嘗試將用戶重定向到https://login.microsoftonline.com/logout.srf –

+0

因此,它似乎是我用來啓動身份驗證流程的chrome.identity.LaunchWebAuthFlow的問題。它會緩存用戶的身份,但不提供任何刪除它的方法。事件你輸入一個不同的帳戶,鉻堅持舊的。有一箇舊的線程(http://stackoverflow.com/questions/26080632/how-do-i-log-out-of-a-chrome-identity-oauth-provider)談論這個問題,但沒有解決方案作品。 –

回答

0

我使用了兩個通過launchWebAuthFlow註銷 - 首先我將該註銷鏈接稱爲我的應用程序,然後其次,我將註銷鏈接稱爲Google。

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) {}); 
相關問題