只是一个关于 JWT 规范和常见 JWT 最佳实践的简单问题。我可以/应该使用嵌套对象作为 JWT 令牌声明还是应该使用前缀声明?这两个似乎都是有效的(至少它都是由像https://jwt.io这样的网站解码的),但我不确定是否有关于选择这两个选项中哪一个的指南。
选项1:
{
"iat": 1516239022,
"user.firstName": "John",
"user.lastName": "Doe"
}
选项2:
{
"iat": 1516239022,
"user": {
"firstName": "John",
"lastName": "Doe"
}
}
它们有两种不同的含义。前者为3项索赔,后者为2项索赔。如果理解user.firstName
的
所有观众也理解
user.lastName
,那么它就是一个次要的语义细节。然而,在第二种情况下,观众有义务将这一主张视为全部或全部。他们必须处理名字和姓氏。在第一种情况下,观众认出user.firstName
而不认出user.lastName
是有意义的。
理论上,在第二种情况下,名字字段和姓氏字段之间可能存在一些复杂的交互,不能通过简单地忽略其中一个或另一个来处理。