Какова цель проверки пользователя при входе в систему Apple?

В Войдите с помощью Apple REST API | В документации для разработчиков Apple есть две статьи: Проверка подлинности пользователей с помощью входа в систему с помощью Apple | Документация для разработчиков Apple и Проверка пользователя | Документация для разработчиков Apple.

Я могу получить идентификатор пользователя в разделе «Аутентификация пользователей с помощью входа в систему Apple», но мне сложно понять, зачем нужна «Подтвердить токен идентичности», если у нас уже есть идентификатор пользователя. Какова цель «Проверить токен идентичности»? И какова цель «Получить токен обновления»? Что мы можем сделать, используя токен обновления и токен доступа?

Я не могу найти ответ в «Документации разработчика Apple».


person Jason Law    schedule 13.03.2020    source источник


Ответы (1)


Токен идентификации пользователя, который вы получаете при входе в систему с Apple, действителен только в течение 10 минут, потому что он может быть перехвачен и использован в атаке повторного воспроизведения. Возможно, его тоже можно было подделать.

Вы отправляете пользовательский токен в конечную точку проверки, чтобы убедиться, что это действительный идентификационный токен, выпущенный Apple.

Вам также может потребоваться некоторый набор учетных данных на вашем сервере, чтобы он мог выдавать токены доступа; подумайте «имя пользователя и пароль», однако в случае входа в систему Apple у вас нет пароля; Это роль токена обновления.

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

В iOS вы можете использовать getCredentialState(forUserID:completion:), чтобы убедиться, что пользователь по-прежнему действителен. В других системах вы можете периодически (максимум один раз в день) проверять токен обновления, чтобы гарантировать, что учетная запись пользователя по-прежнему находится на хорошем счету в Apple.

person Paulw11    schedule 13.03.2020
comment
Итак, для настраиваемого REST API - вы предлагаете отправить идентификатор пользователя и обновить токен от клиента к серверу? - person Chris Prince; 12.04.2020
comment
проверить токен обновления 'эквивалентно' выдать новый токен доступа '? что проверяет функция getCredentialState? - person mazend; 27.04.2020
comment
Нет, вы никогда не получите новый токен доступа. Токен обновления похож на пароль; вы можете хранить его бесконечно. Один раз в день вы можете убедиться, что он все еще действителен (т.е. пользователь, стоящий за ним, все еще существует) getCredentialState - это недорогой вызов на устройстве (поэтому он не попадает в сеть), чтобы сообщить вам, действителен ли идентификатор пользователя или нет. - person Paulw11; 27.04.2020