OAuth两条腿用JWT和refresh_token

时间:2015-03-19 17:13:49

标签: oauth oauth-2.0 jwt

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

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

API的下一个请求将使用该JWT对用户进行身份验证。

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

那么,¿我怎么能生成那个refresh_token? JWT不需要存储在DB中(因为它们背后有加密)但是,应该存储刷新器吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

你可以用任何一种方式实现它,两者都有其优点和缺点。

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