Можно ли установить утверждения логического значения в вашем токене идентификации с помощью Duende Identity Server 5?
Я пытаюсь установить пользовательское утверждение с некоторым кодом для Duende Identity Server 5.2.3.
Утверждение работает / добавляется, но это строка, а не логическое значение. Я заметил еще одно требование в JWT, которое является логическим, поэтому мне интересно, могу ли я сделать это также?
Вот код, а затем образец JWT:
public class CustomTokenService : DefaultTokenService
{
public override async Task<Token> CreateIdentityTokenAsync(TokenCreationRequest request)
{
var token = await base.CreateIdentityTokenAsync(request);
bool isThisInAGracePeriod = true; // for example ...
// This doesn't work. There's no bool overload, for the 2nd argument.
// var myClaim = new Claims("in_grace_period", isThisInAGracePeriod);
// I need to convert the bool to a string, using ToString();
var myClaim = new Claims("in_grace_period", isThisInAGracePeriod.ToString());
token.Claims.Add(myClaim);
}
}
так заметьте:
- является значением
-
in_grace_period
этоstring
значение (потому что мне пришлосьToString()
это :( )
Можно ли добавить мою пользовательскую претензию в качествеbool
так что это выглядит так, какemail_verified
сериализуется в полезную нагрузку токена?
1 ответ
Да,Claim
class имеет конструктор, который принимает 3 параметра, а 3-й является типом значения.
var claim = new Claim(
type: "in_grace_period",
value: isThisInAGracePeriod.ToString().ToLower(),
valueType: ClaimValueTypes.Boolean);