• 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 тоже есть такая проблема, но хотя бы здесь разобраться. 

 

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


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

0 ответов на этот вопрос

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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

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

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