2015-11-16 2 views
0

Я использую SDK Fabric для входа в Twitter для входа в мое приложение.Как удалить сеанс и cookie Twitter из моего приложения iOS

Я хочу удалить сеанс и cookie Twitter из моего приложения iOS. Потому что я успешно регистрирую 1-й раз из Twitter с помощью этого 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]; 
    } 
} 

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

ответ

1

Попробуйте добавить это удалить куки

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

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

В Objective-C

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

{ 
    if ([[httpCookie valueForKey:@"domain"] isEqualToString:@".twitter.com"]) 
    { 
     [cookieStorage deleteCookie:httpCookie]; 
    } 
} 
+0

Пожалуйста, поделитесь этим кодом на языке объектива-c. Правильно ли это? NSHTTPCookie * cookie = NSHTTPCookie.self; NSHTTPCookieStorage * cookieList = [NSHTTPCookieStorage sharedHTTPCookieStorage]; для (cookie in cookieList.cookies) { [cookieList deleteCookie: cookie]; } –

+0

вы можете проверить эту ссылку для объектива-c http://stackoverflow.com/a/21823068/5362916 –

+0

Спасибо! Я пытаюсь это сделать, но это не работает для меня. потому что я хочу удалить сеанс Twitter из моего приложения. –

1

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

Btw, вы должны изменить код, вы не можете удалить объект из массива, когда вы его перечисляете. Может быть, вы можете использовать другую переменную, сохраняются куки, когда вы его найти и удалить его из петли Форин

// EDIT

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]; 
    } 
} 

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

+0

Yess, я отлаживаю это с помощью контрольных точек. Я знаю, что это проблема. но сейчас у меня нет альтернативного решения. Итак, если у вас есть альтернативное решение, то, пожалуйста, поделитесь со мной. Я хочу очистить сессию и cookie Twitter от моего приложения. –

+0

Возможно, домен не совсем «.twitter.com», вы пытались распечатать весь массив? Таким образом, вы можете искать его и писать правильно (если это было неправильно) – Drizztneko

+0

Yess I печатает весь массив. И иногда у него есть 4 объекта или иногда 7 объектов. Также я пытаюсь @ "twitter" в качестве имени домена. Его работа такая же. но не решая мою проблему. –

Смежные вопросы