如何生成刷新令牌?
How to generate a refresh token?
我正在我的一个节点应用程序中实现 JWT。我想知道,是否有任何明确的格式/结构应该生成刷新令牌?
我所说的明确格式是指刷新令牌是否包含任何声明,如 JWT?
更新
让我们假设刷新令牌是:fdb8fdbecf1d03ce5e6125c067733c0d51de209c
(取自 Auth0)。现在,我应该从这个中理解什么?
- 这是一个随机的唯一字符串吗?
- 这是一个加密的字符串,里面有声明吗?
简答
- 一个
refresh-token
只是一个随机字符串。
- 包括索赔在内的所有 user-related 信息都在
access-tokens
中
说明
你应该保留这样的东西:
{
_id: [refreshTokenId],
value: 'fdb8fdbecf1d03ce5e6125c067733c0d51de209c',
userId: [userId],
expires: [some date],
createdByIp: [some ip],
createdAt: [some date],
replacedBy: [anotherRefreshTokenId],
revokedByIp: [some other ip],
revokedBy: [some other date],
}
刷新令牌是由身份验证服务器生成的随机字符串。它们是在成功验证后生成的(例如,如果用户的用户名和密码有效)。
它们的唯一目的是消除重复交换用户凭据的需要。它们不同于 access-tokens.
access-token
通常包含有关用户的信息(如姓名、声明)。这些通常是 short-lived。 JWT 就是一个例子。
要获取 JWT,应用程序必须验证凭据。
为了增加额外的安全性,并停止每 15 分钟打扰用户输入用户名和密码,我们只需创建 a signature on the server-side
并将其转发到应用程序。
下次,每当应用程序需要创建 JWT 时,它只需将签名发送回服务器即可。此签名是您的刷新令牌。
刷新令牌也应该保存在某个地方。
因此,您可能会在数据库中创建一个 table/collection,将 refresh-token
值与 userIds
和 ip_address
.
链接起来
这就是您为用户创建会话管理面板的方法。然后,用户可以查看我们为其注册了刷新令牌的所有设备 (ip_addresses)。
我正在我的一个节点应用程序中实现 JWT。我想知道,是否有任何明确的格式/结构应该生成刷新令牌?
我所说的明确格式是指刷新令牌是否包含任何声明,如 JWT?
更新
让我们假设刷新令牌是:fdb8fdbecf1d03ce5e6125c067733c0d51de209c
(取自 Auth0)。现在,我应该从这个中理解什么?
- 这是一个随机的唯一字符串吗?
- 这是一个加密的字符串,里面有声明吗?
简答
- 一个
refresh-token
只是一个随机字符串。 - 包括索赔在内的所有 user-related 信息都在
access-tokens
中
说明
你应该保留这样的东西:
{
_id: [refreshTokenId],
value: 'fdb8fdbecf1d03ce5e6125c067733c0d51de209c',
userId: [userId],
expires: [some date],
createdByIp: [some ip],
createdAt: [some date],
replacedBy: [anotherRefreshTokenId],
revokedByIp: [some other ip],
revokedBy: [some other date],
}
刷新令牌是由身份验证服务器生成的随机字符串。它们是在成功验证后生成的(例如,如果用户的用户名和密码有效)。
它们的唯一目的是消除重复交换用户凭据的需要。它们不同于 access-tokens.
access-token
通常包含有关用户的信息(如姓名、声明)。这些通常是 short-lived。 JWT 就是一个例子。
要获取 JWT,应用程序必须验证凭据。
为了增加额外的安全性,并停止每 15 分钟打扰用户输入用户名和密码,我们只需创建 a signature on the server-side
并将其转发到应用程序。
下次,每当应用程序需要创建 JWT 时,它只需将签名发送回服务器即可。此签名是您的刷新令牌。
刷新令牌也应该保存在某个地方。
因此,您可能会在数据库中创建一个 table/collection,将 refresh-token
值与 userIds
和 ip_address
.
链接起来
这就是您为用户创建会话管理面板的方法。然后,用户可以查看我们为其注册了刷新令牌的所有设备 (ip_addresses)。