2014-12-03 192 views
3

我將Oauth 2.0用於Google授權,將其用於混合應用。我使用的是PhoneGap的InAppBrowser API,它的功能非常完美。但是,我希望能夠在有人單擊本地註銷按鈕後清除InAppBrowser的緩存。我曾嘗試添加「clearcache = yes」和「clearsessioncache = yes」,但他們似乎沒有做任何事情。如果有人嘗試重新登錄時不清除緩存,則使用先前登錄的帳戶驗證該令牌。我可以註銷的唯一方法是繼續嘗試登錄,直到我獲得Google權限屏幕並可以手動註銷。有沒有一種方法可以通過編程方式刪除與InAppBrowser關聯的所有內容?以編程方式清除Phonegap的InAppBrowser緩存

感謝

+0

當你調用clearcache或clearsessioncache?在重新打開InAppbrowser之前? – AAhad 2014-12-03 05:10:15

+0

您正在使用哪種設備? clearcache或clearsessioncache僅適用於Android。 – AAhad 2014-12-03 05:16:47

回答

11

象曰:clearcache or clearsessioncache僅適用於Android。所以之前重新開放閱讀本API Doc

的Android情況:

window.open("domain.com", "_blank", "location=no,clearsessioncache=yes"); 

對於的iOS:檢查this out

替代方案:

  1. 清除通過JavaScript會話cookie直接或間接(檢查this - JQuery的餅乾結算)
  2. 的PhoneGap /科爾多瓦插件,讓您清楚的餅乾webview ...查看this
+0

非常感謝,這解決了我的問題! – benjipelletier 2014-12-03 06:41:34

+0

您好,很高興知道。 – AAhad 2014-12-03 06:53:41

+6

這個答案是錯誤的,clearsessioncache和clearcache選項不是僅限於android,它們在2014年4月被添加到iOS,因此,它在2014年12月得到了答覆,它一直是錯誤的。它鏈接的文檔是inAppBrowser插件的過時分支,而不是apache的核心版本https://github.com/apache/cordova-plugin-inappbrowser – jcesarmobile 2015-11-21 12:04:08

1

我覺得最好方式,從谷歌在inAppBrowser註銷是打開URL

https://mail.google.com/mail/logout?hl=en

從它,它會自動註銷您從谷歌將您重定向到登錄頁面。如果您需要通過點擊任何按鈕來完成此操作,可以打開隱藏的應用程序瀏覽器。

window.open( 'https://mail.google.com/mail/logout?hl=en', '_blank', '隱藏= YES')

你也可以做的另一件事,你可以在每次通話時間前打開這個網址在隱藏模式Oauth網址。它會確保您之前的會話已註銷,讓您提供不同的登錄ID。

3

所選答案已過期,現在可以在iOS和Andriod中使用clearsessioncache標誌。在這裏看到的文檔:

https://github.com/apache/cordova-plugin-inappbrowser

所以,正確的解決方法就是使用

window.open("domain.com", "_blank", "location=no,clearsessioncache=yes"); 

在任何情況下。另請注意

選項字符串不能包含任何空格,並且每個 要素的名稱/值對必須用逗號分隔。功能名稱 不區分大小寫。

+1

你把我留在了「空白處」!謝謝 :) – ANewGuyInTown 2017-05-02 03:15:14

0

您可能想要在中爲no-cache添加元標記。

這對我有用。