我的问题很简单 我们是否应该将用户对象存储在JWT的有效负载中 ?
例如:
{
iss: "https://YOUR_NAMESPACE",
user: user, // user object from database
aud: "YOUR_CLIENT_ID",
exp: 1372674336,
iat: 1372638336
}
或者最好只存储用户的唯一ID,如下所示:
{
iss: "https://YOUR_NAMESPACE",
sub: user.id, //only user id
aud: "YOUR_CLIENT_ID",
exp: 1372674336,
iat: 1372638336
}
JSON Web令牌草案规范: http://tools.ietf.org/html/draft-ietf-oauth-json-web-token
答案 0 :(得分:3)
您可以在令牌中存储有关用户的任何类型的信息,但我认为存储所有用户信息并不有用。
由于HTTP是无状态的,因此每次用户在您的网站或Web应用程序上进行连接时,都会将令牌发送到服务器以对用户进行身份验证。所以这个标记应该尽可能小(这是JWT的JSON Compact序列化格式的目标)。
您应存储唯一信息以识别用户,例如其电子邮件地址或ID(aud: "YOUR_CLIENT_ID"
)。
如果需要,您可以使用API调用或任何其他协议向服务器请求有关用户的信息。