Платформа 3V/Формы/Выражения/Параметры/Атрибут токена пользователя (EntryExpressionTokenAttributeParameter)
Для использования данных токена пользователя, можно воспользоваться операндом для выражения 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
Название атрибута в токене | Название атрибута в платформе |
---|---|
"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