为什么UserAuthName与@符号不添加到jwt令牌在ServiceStack JwtAuthProvider?&l



方法CreateJwtPayload()在JwtAuthProvider.cs (https://github.com/ServiceStack/ServiceStack/blob/45108614b77c37185e3fe471ad49a462b825354c/ServiceStack/src/ServiceStack/Auth/JwtAuthProvider.cs#L361)是用户名与"@"符号未设置为有效载荷"preferred_username"

代码片段:

if (!string.IsNullOrEmpty(session.UserName))
jwtPayload["preferred_username"] = session.UserName;
else if (!string.IsNullOrEmpty(session.UserAuthName) && !session.UserAuthName.Contains("@"))
jwtPayload["preferred_username"] = session.UserAuthName;

系统中的用户名可能包含"@"符号,并且现在没有添加有效负载"preferred_username"

为什么UserAuthName "@"没有添加到这个JswAuthProvider of ServiceStack的有效载荷?

带有@的Usernames是用来确定ServiceStack中的Username是否为电子邮件的。

您可以使用CreatePayloadFilter来修改JWT有效负载以自己填充它。

最新更新