Платформа 3V/Формы/Выражения/Параметры/Атрибут токена пользователя (EntryExpressionTokenAttributeParameter)

Материал из 3v-wiki
Перейти к навигации Перейти к поиску

Для использования данных токена пользователя, можно воспользоваться операндом для выражения EntryExpressionTokenAttributeParameter, который возвращает значение выбранного атрибута токена пользователя. Он имеет следующую структуру:

1  {
2           "attributeId": "preferred_username",
3           "discriminator": "EntryExpressionTokenAttributeParameter",
4           "id": 1,
5           "allowMultipleValues": false
6  }

Описание свойств параметра

Свойство Описание
id Идентификатор операнда
allowMultipleValues Флаг об получении результата в виде коллекции значений (true/false)
discriminator EntryExpressionTokenAttributeParameter
attributeId Идентификатор атрибута из токена.

Обращение к некоторым атрибутам токена

Из-за особенностей реализации чтения атрибутов токена на текущий момент, к некоторым атрибутам необходимо обращаться по другому наименованию внутри платформы.

Общий перечень измененных имен атрибутов токена в платформе:

Наименование из токена атрибута (можно увидеть через https://jwt.io/) - значение из колонки слева с маленькой буквы JwtRegisteredClaimNames - https://docs.microsoft.com/en-us/dotnet/api/system.identitymodel.tokens.jwt.jwtregisteredclaimnames?view=azure-dotnet

Наименование атрибута в платформе - Значение из колонки из колонки справа - https://docs.microsoft.com/ru-ru/dotnet/api/system.security.claims.claimtypes?view=net-5.0

Название атрибута в токене Название атрибута в платформе
email "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"
family_name "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"


 1  { /* пример чтения атрибута токена family_name */
 2       "expression": "ToString([3])",
 3       "returnFirstParameterValue": false,
 4       "operands": [
 5         {
 6           "attributeId": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname",
 7           "discriminator": "EntryExpressionTokenAttributeParameter",
 8           "id": 3,
 9           "allowMultipleValues": false
10         }
11       ],
12       "id": 1104,
13       "name": null,
14       "code": null
15     }

Пример использования в качестве параметра выражения

Кейс: Выставить в первый текстовое поле true/false, в зависимости от того, есть ли у пользователя роль администратора, или нет. Во второе текстовое поле выставить логин пользователя.
Ссылка на пример: https://study.3v-cloud.com/navigator/#/home?objectId=867
read token.png

JSON серверной карточки