#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 привязаны к домену, но если эти страницы используют общую систему аутентификации (я думаю, маловероятно), вы могли бы вручную передать идентификатор сеанса на вторую страницу. Если нет, то вопрос в том, как эта вторая страница должна авторизовать пользователя?