2014-02-07 2 views
3

Я пишу приложение iOS, которое использует Twitch.tv's API, чтобы позволить моему приложению получать доступ к их контенту пользователей. Они используют протокол OAuth 2.0 для аутентификации. Мне нужно использовать этот токен доступа каждый раз, когда я делаю запрос на доступ к информации о пользователях.Лучший способ хранить токен iOS OAuth?

Мой вопрос: где я должен его хранить?

Должен ли я создать класс, обладающий этим свойством? В этом классе я мог бы также хранить URI Redirect и Client_ID для хранения вещей в одном месте.

Я думал о NSUserDefaults, но я читал, что это не очень безопасно.

Каков наилучший шаблон дизайна для этого подхода на iOS?

Спасибо.

ответ

1

Как ваш вопрос сформулирован, вы, кажется, путаете использование хранилища слов, чтобы означать две совершенно разные вещи. Если вы используете NSUSerDefaults, то токен будет храниться в файле и будет сохраняться, если приложение будет убито. Если вы сделаете это свойством класса, он временно хранится в памяти и не будет сохраняться, если приложение будет убито. Поэтому ваш вопрос спрашивает, следует ли использовать Яблоки или Апельсины.

Если вам нужно постоянное хранилище для конфиденциальных данных, вам не следует использовать NSUserDefaults, а вместо него использовать keychain iOS. Использование брелка для ключей является слишком длинным для описания здесь. Брелок шифруется, но используется только 4-значный пин-код пользователя, который потенциально может быть грубо взломан. Таким образом, вы также можете их зашифровать.

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