2015-03-14 2 views
1

Итак, я работаю над быстрым приложением iOS, которому нужна система входа в систему. Все работает отлично, но я не уверен, что она прикреплена хранить идентификатор пользователя, который приложение будет получать от сервера после входа в систему, с этим:Как сохранить переменную в системе Swift - login?

NSUserDefaults.standardUserDefaults().setObject(userid, forKey: "userid") 

и чем получить эту переменную на каждом контроллере представления с этим команда:

var userid: AnyObject? = NSUserDefaults.standardUserDefaults().objectForKey("userid") 

Есть способ начать сеанс? Как в php?

Спасибо!

+2

Что вы пытаетесь защитить идентификатор пользователя против? Это секрет? Не совсем ясно, какова ваша проблема. – Wain

+0

Я хочу знать, нормально ли, как я это делаю. Как я и спросил, я хочу знать, есть ли другой способ, начать сеанс или что-то вроде этого, как в php. Я хочу защитить его от того, кто может «сломать» мое приложение ... представьте, что кто-то просто модифицирует каким-то образом идентификатор пользователя, хранящийся в этом методе. –

+0

Нет понятия сеанса, если вы его не создадите (напишите сами). Если кто-то хочет разорвать ваше приложение, все, что вы можете сделать, сделать это сложно, а не невозможно. Что может использовать userid для этого, он может сломать приложение? – Wain

ответ

4

Значения в NSUserDefaults хранятся в каталоге вашего приложения как диск в двоичном формате без шифрования. Поэтому их легко подделать и, следовательно, не безопасно.

Не существует прямого аналога сеанса в iOS, если вы его не создали. Это означает, что вы можете хранить конфиденциальную информацию в настройках пользователя по умолчанию после их шифрования, или вы можете использовать Keychain iOS для их непосредственного хранения (который будет выполнять шифрование для вас). Использование Keychain на iOS немного сложное, но вы можете найти для него обертки.

Пожалуйста, смотрите эту тему для примера: iOS: How to store username/password within an app?

Там также учебник по raywenderlich: http://www.raywenderlich.com/92667/securing-ios-data-keychain-touch-id-1password

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