Идентификационный токен — это цифровой объект, который подтверждает, что пользователь успешно прошел процедуру аутентификации в системе. Чаще всего идентификационный токен применяется в современных протоколах аутентификации, таких как OpenID Connect (OIDC). Этот токен доказывает, что пользователь был аутентифицирован доверенным поставщиком идентификационных данных, например, Google, Facebook или другим сервисом, и передает информацию о пользователе приложению.
Основная задача идентификационного токена — это предоставление информации о личности пользователя. Токен содержит данные, которые можно использовать для персонализации пользовательского опыта и проверки, что система взаимодействует с конкретным пользователем. Однако важно понимать, что идентификационный токен не предназначен для выполнения операций с доступом к защищенным ресурсам — для этого используется токен доступа.
Идентификационный токен обычно представлен в формате JWT (JSON Web Token), который состоит из трех частей:
- Заголовок (header) — содержит тип токена (например, JWT) и алгоритм шифрования.
- Полезная нагрузка (payload) — включает данные о пользователе, такие как имя, идентификатор (ID), а также другую информацию, например, время создания и истечения срока действия токена.
- Подпись (signature) — генерируется при помощи закрытого ключа эмитента и служит для проверки подлинности токена и защиты его от изменений.
Пример данных, которые могут содержаться в идентификационном токене:
- iss (issuer) — эмитент токена, например, адрес провайдера аутентификации;
- sub (subject) — идентификатор пользователя;
- aud (audience) — целевое приложение, для которого предназначен токен;
- exp (expiration) — время истечения срока действия токена.
Идентификационный токен можно использовать для персонализации взаимодействия с пользователем, например, отображения его имени или других данных без необходимости делать дополнительные запросы к базе данных. Важно помнить, что идентификационный токен не должен использоваться для авторизации действий в приложении.