OAuth双腿,带JWT和refresh_标记

OAuth双腿,带JWT和refresh_标记,oauth,oauth-2.0,jwt,Oauth,Oauth 2.0,Jwt,我正在为API实现授权和身份验证流。我考虑的是两条腿的OAuth(因为API只供我们使用,而不是第三方应用程序)。但我发现了一些关于代币及其到期期限的问题 我将使用用户的用户名和密码向/ouath/token请求访问令牌。此端点应返回JWT作为访问令牌 接下来对API的请求将使用该JWT对用户进行身份验证 JWT应在一段时间内到期(例如1天)。我已经读到我需要实现一个刷新端点,在这个端点中,应用程序可以刷新JWT,以便每天都不向用户询问用户名和密码 那么,我如何生成刷新令牌?JWT不需要存储在D

我正在为API实现授权和身份验证流。我考虑的是两条腿的OAuth(因为API只供我们使用,而不是第三方应用程序)。但我发现了一些关于代币及其到期期限的问题

我将使用用户的用户名和密码向/ouath/token请求访问令牌。此端点应返回JWT作为访问令牌

接下来对API的请求将使用该JWT对用户进行身份验证

JWT应在一段时间内到期(例如1天)。我已经读到我需要实现一个刷新端点,在这个端点中,应用程序可以刷新JWT,以便每天都不向用户询问用户名和密码

那么,我如何生成刷新令牌?JWT不需要存储在DB中(因为它们背后有密码),但是,应该存储刷新令牌吗


提前感谢

您可以采用任何一种方法来实现它,这两种方法各有利弊

  • 将刷新令牌作为过期日期较长的JWT发送。
    • 无法在需要时撤消刷新令牌
    • 不需要数据库来存储令牌
  • 作为随机令牌发送并存储在数据库中,并与用户和客户端关联。
    • 您可以随时撤销刷新令牌
    • 您将需要一个DB来存储令牌