Android WebView가 쿠키 또는 비밀번호를 저장하지 않도록 설정
Twitter OAuth에 Android WebView를 사용합니다 . Twitter는 사용자에게 로그인하여 애플리케이션을 승인 요청하고 액세스 토큰을 검색하여 내 애플리케이션에 유지합니다.
사용자 암호를 지정 필요가없고 지정 필요도 없지만 WebView는 Twitter의 쿠키를 보관하며 사용자에게 암호를 기억할 묻습니다. 그 결과 트위터 계정 페이지를 통해 애플리케이션의 승인을 취소하고 내 애플리케이션이 액세스 토큰을 삭제 한 후에도 다음에 WebView를 열면 여전히 로그인 할 가능성이 있습니다. 암호 상자가 이미 채워져 있습니다.
WebView가 암호를 기억하도록 요청하지 않고 세션을 유지하지 않고해야 할 필요가 있습니까? 가능하지 않은 경우 아카이브 상태를 모두 게재 할 수 있습니까? (이미지 캐시 제외)?
이를 사용하여 쿠키가 저장되는 것을 방지하고 이미 쿠키를 정리할 수 있습니다.
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeAllCookies(callback);
cookieManager.setAcceptCookie(false);
WebView webview = new WebView(this);
WebSettings ws = webview.getSettings();
ws.setSaveFormData(false);
ws.setSavePassword(false); // Not needed for API level 18 or greater (deprecated)
비밀번호를 저장하지 않는 경우 :
WebView webview = new WebView(this);
WebSettings mWebSettings = webview.getSettings();
mWebSettings.setSavePassword(false);
mWebSettings.setSaveFormData(false);
쿠키의 경우 :
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(false);
쿠키 구현에 대해 잘 모르겠습니다.
한 줄에 시도하십시오. webview를 사용하여 작성해야합니다.
android.webkit.CookieManager.getInstance().removeAllCookie();
이 맥락에서 본 최고의 답변입니다.
webView.clearCache(true);
webView.clearHistory();
WebSettings webSettings = webView.getSettings();
webSettings.setSaveFormData(false);
webSettings.setSavePassword(false); // Not needed for API level 18 or greater (deprecated)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
CookieManager.getInstance().removeAllCookies(null);
CookieManager.getInstance().flush();
} else {
CookieSyncManager cookieSyncMngr = CookieSyncManager.createInstance(this);
cookieSyncMngr.startSync();
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeAllCookie();
cookieManager.removeSessionCookie();
cookieSyncMngr.stopSync();
cookieSyncMngr.sync();
}
쿠키를 지우지 쿠키 라이브러리 페이스 북 등의 다른 방법을 세션에 영향을 미치게됩니다.
웹뷰 생성 전과 같은 oauth 트랜잭션 전
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(false);
oauth 트랜잭션 후 설정하여 쿠키 허용 허용
cookieManager.setAcceptCookie(true);
나는 그것을 테스트했다 작동합니다 ..
다음 솔루션을 사용했습니다.
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(false);
다음 방법은 나를 위해 작동하지 않습니다.
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeAllCookie();
가능한 이유는 다음과 같이 쿠키를 동기화하지 않았기 때문일 수 있습니다.
CookieSyncManager.createInstance(getContext()).sync();
그러나 시간이 걸릴 수 있습니다.
WebView
암호를 기억하지 않도록 강제 하는 것도 작동하지 않습니다.
또한 사용성에도 좋지 않습니다.
참고 URL : https://stackoverflow.com/questions/5404274/make-android-webview-not-store-cookies-or-passwords
'ProgramingTip' 카테고리의 다른 글
두 목록 비교 (0) | 2020.12.03 |
---|---|
Java는 HashMap 또는 HashTable에서 항목을 어떻게 주문합니까? (0) | 2020.12.03 |
Android의 다른 로케일에서 어디서 얻는 방법은 무엇입니까? (0) | 2020.12.03 |
목록의 요소가 목록인지 확인하는 방법 (Python에서)? (0) | 2020.12.03 |
Twitter 부트 유효성 검사 Nav-Pills의 색상 변경 (0) | 2020.12.03 |