Как удалить сеанс и файл cookie Twitter из моего приложения для iOS

Я использую Fabric SDK для входа в Twitter в свое приложение.

Я хочу удалить сеанс и файл cookie Twitter из моего приложения для iOS. Потому что я впервые успешно регистрируюсь в Твиттере, используя этот SDK. Но если пользователь хочет войти в мое приложение с другими учетными данными, используя Twitter, то это невозможно без четкого сеанса.

Для четкого сеанса Twitter я использую следующий код. Но это не работает.

[[Twitter sharedInstance]logOut];
[[Twitter sharedInstance]logOutGuest];
NSHTTPCookieStorage *cookieList = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *x in cookieList.cookies)
{
     if ([[x valueForKey:@"domain"] isEqualToString:@".twitter.com"])
     {
           [cookieList deleteCookie:x];
     }
}

С нетерпением ждем ваших ответов!


person Meet Doshi    schedule 16.11.2015    source источник


Ответы (2)


Попробуйте добавить это, чтобы удалить файлы cookie

    let cookie = NSHTTPCookie.self
    let cookieStorage = NSHTTPCookieStorage.sharedHTTPCookieStorage()

    for cookie in cookieStorage.cookies!
    {
       cookieStorage.deleteCookie(cookie)
    }

В цели-C

NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *httpCookie in cookieStorage.cookies)

{
    if ([[httpCookie valueForKey:@"domain"] isEqualToString:@".twitter.com"])
    {
        [cookieStorage deleteCookie:httpCookie];
    }
}
person Uma Madhavi    schedule 16.11.2015
comment
Пожалуйста, поделитесь этим кодом на языке Objective-C. Это правильно?? NSHTTPCookie * cookie = NSHTTPCookie.self; NSHTTPCookieStorage *cookieList = [NSHTTPCookieStorage sharedHTTPCookieStorage]; for (cookie в cookieList.cookies) { [cookieList deleteCookie:cookie]; } - person Meet Doshi; 16.11.2015
comment
вы можете проверить эту ссылку для цели-c stackoverflow.com/a/21823068/5362916 - person Uma Madhavi; 16.11.2015
comment
Спасибо!!! Я пытаюсь это сделать, но это не работает для меня. потому что я хочу удалить сеанс Twitter из моего приложения. - person Meet Doshi; 16.11.2015
comment
также вы можете использовать этот NSURL *url = [NSURL URLWithString:@api.twitter.com]; NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:url]; for (NSHTTPCookie *cookie в файлах cookie) { [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie]; } - person Uma Madhavi; 16.11.2015

Использовали ли вы точки останова, чтобы узнать, входит ли он внутрь условия de if?

Кстати, вам нужно изменить код, вы не можете удалить объект из массива, пока вы его перечисляете. Возможно, вы можете использовать другую переменную для сохранения файла cookie, когда вы его найдете, и удалите его из цикла forin.

// РЕДАКТИРОВАТЬ

NSHTTPCookieStorage *cookieList = [NSHTTPCookieStorage sharedHTTPCookieStorage];
NSMutableArray *cookies = [[NSMutableArray alloc] init];
for (NSHTTPCookie *x in cookieList.cookies)
{
     if ([[x valueForKey:@"domain"] isEqualToString:@".twitter.com"])
     {
         [cookies addObject:x];
     }
}
if (cookies.count > 0) {
    for (NSHTTPCookie *cookie in cookies) {
        [cookieList deleteCookie:cookie];
    }
}

Я создал массив, потому что не знаю, сколько файлов cookie сохраняется в твиттере.

person Drizztneko    schedule 16.11.2015
comment
Да, я отлаживаю это с помощью точек останова. Я знаю, что это проблема. но у меня сейчас нет альтернативного решения. Итак, если у вас есть альтернативное решение, поделитесь со мной. Я хочу очистить сеанс и файлы cookie Twitter из своего приложения. - person Meet Doshi; 16.11.2015
comment
Может домен не совсем .twitter.com, пробовали напечатать весь массив? Таким образом, вы можете найти его и правильно написать (если он был неправильным). - person Drizztneko; 16.11.2015
comment
Да, я печатаю весь массив. И иногда у него есть 4 объекта, а иногда и 7 объектов. Также я пытаюсь использовать @twitter в качестве доменного имени. Работает так же. но не решает мою проблему. - person Meet Doshi; 16.11.2015
comment
единственное, что я могу предложить, это способ удаления файлов cookie, но я не могу помочь вам создать этот файл cookie, потому что я никогда не работал с ними. Я отредактирую свой ответ с кодом. - person Drizztneko; 16.11.2015