Перейти к содержанию
  • Регистрация
  • 0
Авторизация  
tLink

Очистка Cookies

Вопрос

Всем, добрый день, 

Хочу сделать кнопку logout.

Для http запросов использую NetHttpClient, авторизация на OnAuthEvent. Во время работы приложения передаю куки от NetHttpClient в браузер кодом:

procedure
  {$IFDEF ANDROID}
var
  CookieSyncManager: JCookieSyncManager;
  CookieManager : JCookieManager;
  Cookie: TCookie;
  {$ENDIF}
Begin
    {$IFDEF ANDROID}
    if High(NetHTTPClient1.CookieManager.Cookies) >= 0 then
    begin
      Cookie := NetHTTPClient1.CookieManager.Cookies[0];
      CookieSyncManager := TJCookieSyncManager.JavaClass.createInstance(TAndroidHelper.Context);
      CookieManager := TJCookieManager.JavaClass.getInstance;
      CookieManager.setAcceptCookie(True);

      CookieManager.setCookie(StringToJString(BaseURL), StringToJString(Cookie.ToString));
      CookieSyncManager.sync();
    end;
    {$ENDIF}
end;

 

Очищаю следующим образом: 

 

procedure TNetModule.LogOut;
{$IFDEF ANDROID}
var
  CookieSyncManager: JCookieSyncManager;
  CookieManager : JCookieManager;
  //NeedSync: Boolean;
{$ENDIF}
begin  
  // очистить куки ?  
  NetModule.NetHTTPClient1.CredentialsStorage.ClearCredentials;
  NetHTTPClient1.CookieManager.DeleteCookies;
  {$IFDEF ANDROID}
  CookieSyncManager := TJCookieSyncManager.JavaClass.createInstance(TAndroidHelper.Context);
  CookieManager := TJCookieManager.JavaClass.getInstance;
  CookieManager.setAcceptCookie(False);
  if TJBuild_VERSION.JavaClass.SDK_INT < 21 then
    CookieManager.removeAllCookie()
  else
    CookieManager.removeAllCookies(nil);
  CookieSyncManager.Sync();   
  {$ENDIF}
  LoginForm.Show;
end;

DeleteCookies выполняется с помощью хелпера:

  // interface
  TCookieManagerHelper = class helper for TCookieManager
    procedure DeleteCookies;
  end;

  // implementation
procedure TCookieManagerHelper.DeleteCookies;
begin
  with Self do
    FCookies.Clear;
end;

Но при новой авторизации событие OnAuthEvent не срабатывает, следовательно можно зайти и вовсе без пароля. Использую Delphi 10.2.2. Проверял на Android 8.0 и 5.0. Кто-нибудь сталкивался с таким?

ps iPhone тоже есть такая проблема, но хотя бы здесь разобраться. 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рекомендуемые сообщения

Ответы на этот вопрос пока отсутствуют

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...