Как сохранить файлы cookie и повторно использовать их в другом сеансе

#java #android #cookies #rss #webview

#java #Android #файлы cookie #RSS-канал #webview

Вопрос:

Я пытаюсь аутентифицировать пользователя с веб-страницы, сохранить файлы cookie и загрузить rss-канал с другой веб-страницы в качестве аутентифицированного пользователя.

Я использую WebView с этим WebViewClient, который загружает RSS-ссылку, когда пользователь аутентифицируется (загрузка URL завершена): — Это не перенаправляет до тех пор, пока пользователь не войдет в систему и не нажмет другую ссылку.. Как я могу перенаправить сразу после входа в систему?

 class LinkWebViewClient extends WebViewClient
{
    //Callback method for when the url is finished loading
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url)
    {
        view.loadUrl(url);
        view.loadUrl("https://something.com/todays-rssfeeds");
        return true;
    }
    @Override
    public void onPageFinished(WebView view, String url) {
        CookieSyncManager.getInstance().sync();

    };


}
  

Основная проблема в том, что когда я пытаюсь загрузить вторую страницу, мне приходится повторно проходить аутентификацию, потому что это не тот же сеанс..

Есть предложения, как я могу решить эти проблемы?

Это мои настройки файлов cookie:

/

 / use cookies to remember a logged in status   
            CookieSyncManager.createInstance(this); 
            CookieManager cookieManager = CookieManager.getInstance(); 

            //After Login
            List<Cookie> cookies = httpClient.getCookieStore().getCookies();
            if (!cookies.isEmpty()) {
                for (int i = 0; i < cookies.size(); i  ) {
                    cookie = cookies.get(i);
                }
            }

            Cookie sessionCookie = cookie; 

            if(sessionCookie != null)
            { 
                String cookieString = sessionCookie.getName()         "=" sessionCookie.getValue() "; domain=" sessionCookie.getDomain(); 
                cookieManager.setCookie(myUrl, cookieString); 
                CookieSyncManager.getInstance().sync(); 
            } 
  

Любая помощь приветствуется! Спасибо

Ответ №1:

Файлы cookie привязаны к домену, но если эти страницы используют общую систему аутентификации (я думаю, маловероятно), вы могли бы вручную передать идентификатор сеанса на вторую страницу. Если нет, то вопрос в том, как эта вторая страница должна авторизовать пользователя?