Facebook iOS SDK - как да определите дали потребителят е изтрил приложение, без да извиква оторизация всеки път?

Внедрявам Facebook iOS SDK в моето приложение, както е указано в документите на Facebook. А именно, токените за достъп и съответните изтичания се запазват, така че всеки път, когато моята процедура за влизане във Facebook се изпълнява, тя може да провери isSessionValid и ако ДА, избягва извършването на външно authorize повикване. Това работи чудесно, освен когато потребителят след това е деуторизирал/изтрил приложението Facebook.

Тъй като isSessionValid проверява само дали има запазен маркер за достъп и дали изтичането е наред, не изглежда, че има начин да се хване случаят, когато приложението е деуторизирано и по този начин да се изпълни authorize отново.

Някой има ли добро решение за това?

Тъй като моето приложение поддържа своя собствена сесия и трябва да държи потребителите влезли в системата за неопределено време, цялата рутина наистина трябва да се случи само веднъж, така че излишните разходи от просто забравяне за запазване на токени/изтичания и стартиране на authorize всеки път може да не са толкова лоши. Кажи ми какво мислиш.


person G.S.    schedule 26.03.2012    source източник


Отговори (1)


Можете да зададете само оторизация със Safari или оторизация в приложението, за да направите това, трябва да редактирате файла Facebook.m от:

[self authorizeWithFBAppAuth:YES safariAuth:YES];

to:

[self authorizeWithFBAppAuth:NO safariAuth:NO];
person Michal Zaborowski    schedule 26.03.2012
comment
Наясно съм с това - как обаче помага в тази ситуация? Проблемът не е в средствата за оторизация, а по-скоро във факта, че ако сме използвали запазени токени, нямаме начин да проверим дали потребителят след това е изтрил/деуторизирал приложението през своя Facebook профил. - person G.S.; 27.03.2012
comment
Съжалявам, не го прочетох правилно, не съм сигурен, но не е възможно да се провери това чрез fb api, проверихте ли кога се задейства fbDidNotLogin или някои от делегатите на FbSession? но можете да създадете сървър, където ще имате база данни с оторизирани потребители за вашето приложение и всеки път, когато потребител отвори приложението ви, ще проверявате дали токенът от потребителя по подразбиране е в сървъра. - person Michal Zaborowski; 27.03.2012