Работа с файлами cookie и Reddit на iPhone
-
08-10-2019 - |
Вопрос
Я создаю клиент Reddit для iPad и iPhone.Я знаю, что есть несколько других клиентов, но у меня есть несколько действительно классных идей для просмотра Reddit с вкладками: D
В любом случае, сначала я работаю над серверной частью этой штуки, и мне было интересно, как лучше всего поступить с моим файлом cookie.Я использую ASIFormDataRequest и ASIHTTPRequest для получения файлов cookie и отправки запросов на истории и пользовательские субредакты.Мой вопрос в том, как мне узнать, когда срок действия файла cookie истек и я больше не входил в систему?
Глупым решением (на мой взгляд) было бы просто снова войти в систему, прежде чем делать какой-либо запрос данных...но это кажется, ну, в общем, глупым.
Другим решением было бы специально проверить наличие разных ответов на разные запросы в Reddit и получить мой статус входа в систему.
Еще ЛУЧШИМ способом было бы каким-то образом узнать, есть ли у меня файл cookie в хранилище файлов cookie iPhone, связанном с Reddit, и, если у меня его нет, войти в систему.Итак, есть ли способ сделать это?
Решение
У меня нет никаких конкретных знаний о reddit, однако обычным способом справиться с этим было бы отправить запрос, а затем посмотреть, не появилось ли у вас сообщение об ошибке "Не вошел в систему" в качестве ответа.
Проверить, есть ли файл cookie в магазине или нет, можно с помощью
[[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:[url absoluteURL]]
однако это не сообщит вам, действителен ли файл cookie - срок его действия мог истечь на стороне сервера или он мог стать недействительным на стороне сервера, - поэтому вам все равно придется проверять ответы на наличие ошибок "Не вошел в систему".(Хотя из документации API следует, что reddit устанавливает только сессионные файлы cookie, поэтому они никогда не появятся в постоянном хранилище - в этом случае вы можете использовать [ASIHTTPRequest sessionCookies], чтобы просмотреть файлы cookie.)