JSON Web 令牌声明。我在哪里放用户名

信息安全 令牌 jwt
2021-08-29 01:44:13

我正在使用 JWT 来验证用户。因此,我需要创建一个包含以下信息的 json Web 令牌:用户名、mycompany 和到期日期。在 JWT 标准中,有一些保留的声明,例如 issuer (iss)。对于我的信息,我想知道存储我的信息的最佳做法是什么?我原本想设置 iss = 'mycompany.com', sub = 'myusername', exp = 'whenever',但查看 jwt.com 的文档(http://jwt.io/introduction/)我看到了将用户名存储在有效负载中。这有什么原因吗?如果是这样,它们是什么,那么我的实施会出错吗?

1个回答

sub 只是一个预定义的声明。

如您的链接中所述,这是为了“互操作性”。如果您现在或将来不需要与其他系统交换您的 JWT,那么您可以使用私有声明(例如name)。如果您正在使用sub,那么接收此令牌的所有系统都必须对其进行相同的解释(即sub表示用户名,仅此而已)。

请注意,保留的声明也存储在有效负载中。