шаблон регистрации и аутентификации iphone - PullRequest
3 голосов
/ 25 мая 2010

Я ищу стабильный (и совместимый с Apple) шаблон дизайна регистрации и аутентификации между устройством iphone и сервером. В идеале регистрация и аутентификация не должны включать пользователя и должны быть фоновыми.

На данный момент я нашел 3 примитива для выполнения компонентов этого:

  1. UDID
  2. UUID
  3. SBFormattedPhoneNumber

Метод UDID

 [[UIDevice currentDevice] uniqueIdentifier]

    where @property (nonatomic, readonly, retain) NSString *uniqueIdentifier

uniqueIdentifier - это строка, уникальная для каждого устройства на основе различных сведений об оборудовании. (Только для чтения)

Уникальный идентификатор устройства - это хэш-значение, состоящее из различных аппаратных идентификаторов, таких как серийный номер устройства. Он гарантированно уникален для каждого устройства, но не может быть публично привязан к учетной записи пользователя. Вы можете использовать его, например, для хранения рекордов игры на центральном сервере или для контроля доступа к зарегистрированным продуктам. Уникальный идентификатор устройства иногда называют его сокращенным UDID. Мы можем получить UDID из iTunes вручную для проверки

Не уверен, что означает " не может быть публично привязан к учетной записи пользователя" .

Метод UUID

NSString *uuid = nil;
CFUUID theUUID = CFUUIDCreate(kCFAllocatorDefault);
if (theUUID) {
  uuid = NSMakeCollectable(CFUUIDCreateString(kCFAllocatorDefault, theUUID);
  CFRelease(theUUID);
}

CFUUIDCreate создает объект универсального уникального идентификатора (UUID). Объект UUID отличается каждый раз, когда вызывается CFUUIDCreate. Поэтому нам нужно сгенерировать его при первом запуске, а затем сохранить его в соответствии с вашими предпочтениями, используя NSUserDefaults. Недостатком этого является то, что если приложение удаляется и переустанавливается или если устройство восстанавливается из резервной копии, вы потеряете сохраненный UUID, и вещи не будут распознаваться как с того же устройства.

SBFormattedPhoneNumber

NSString *num = [[NSUserDefaults standardUserDefaults] stringForKey:@”SBFormattedPhoneNumber”];
NSLog(@”Phone Number: %@”, num);

Число, возвращаемое этим фрагментом кода, является числом, которое установлено в iTunes для устройства. Если вы не вводили iPhone в iTunes при активации устройства или, возможно, [как в моем случае], если значением по умолчанию не был номер iPhone, и вы все равно нажали OK, так что iTunes не отображает номер телефона, когда ваш iPhone подключен, этот код возвратит пустую строку.

"В целях безопасности iPhone OS ограничивает приложение (включая его настройки и данные) уникальным местоположением в файловой системе. Это ограничение является частью функции безопасности, известной как" песочница "приложения. Песочница - это набор детальных элементов управления, ограничивающих доступ приложения к файлам, настройкам, сетевым ресурсам, оборудованию и т. д. "

Номер телефона устройства недоступен в контейнере вашего приложения. Вам нужно будет пересмотреть приложение, чтобы оно было доступно только для чтения в контейнере каталогов, и повторно отправить двоичный файл в iTunes Connect, чтобы приложение было повторно рассмотрено для App Store.

заранее благодарю за помощь.

Пеймана

Ответы [ 2 ]

2 голосов
/ 25 мая 2010

Apple рекомендует использовать метод UDID, как вы нашли себя. Он уникален и стабилен для каждого устройства. Кроме того, с ним очень легко обращаться. Не может быть публично привязан к учетной записи пользователя. означает, что вы не можете получить учетную запись iTunes пользователя на ее основе, что повышает безопасность использования этого метода.

UUID будет меняться каждый раз, когда вы его генерируете. Поэтому вам придется хранить его самостоятельно между запусками приложения.

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

Поэтому я настоятельно рекомендую использовать метод UDID.

1 голос
/ 13 октября 2011

Я бы сказал, использовать метод UUID. Он предоставляет уникальный идентификатор для вашего собственного приложения, в то время как UDID дает всем приложениям один и тот же идентификатор. Также метод UDID устарел в iOS 5.

...