java - 使用 java 创建刷新和访问 token jwt

标签 java android oauth-2.0 jwt

我正在使用 jjwt 使用 github 上的文档创建 token https://github.com/jwtk/jjwt#specification-compliant

我知道我必须创建一个刷新 token 将其存储在我的数据库中并使用它为用户创建访问 token 。但是我没有找到一个简单的例子来帮助我理解如何编码。我可以按照 github 文档创建一个 token ,但我不知道如何创建一个刷新 token ,然后使用我的刷新 token 创建一个访问 token 。

我在 android studio 上使用 java 并使用 App Engine Java servlet 模块作为备份 api

最佳答案

即使从那以后已经很久了:
您有 2 个 token :一个 快到期 ( token )和一个在很长一段时间后过期的 (刷新 token )。
这样做的原因是因为刷新 token 实际上很少使用,并且您不会经常通过网络发送它。如果您经常通过网络发送 token ,则必须使其快速过期(由您决定 token 的有效期为 30 分钟/1 小时/2 天)。
当您存储数据的 JWT token 过期时,您可以使用 refresh token (来自 客户端 ,应该安全地存储)并获取另一个您经常通过网络发送的 token 。
流程应该是这样的:

  • 使用凭据登录 => 获取 token (2 小时到期)和 刷新 token (30 年到期);
  • 客户端安全地存储两个 token
  • token 已过期
  • 使用刷新 token 发出请求并获取另一个在 2 小时后过期的 token
  • 刷新 token 在 30 年后过期 - 注销用户

  • 刷新 token 仅用于不再次放置用户插入凭据

    关于java - 使用 java 创建刷新和访问 token jwt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46538367/

    相关文章:

    android - 使用 android studio 3.1 更新打开的键盘上的应用程序卡住

    security - 我应该在我的数据库中保留所有 UUIDv4 生成的 oAuth2 Bearer Tokens 以防止攻击吗?

    java - 确保后端服务安全的正确方法 - oAuth

    java - Spring mvc中如何管理Session

    java - 为什么变量显示0?

    java - 显示启动画面时如何在后台加载 webview 中的 url?

    android - Android Oreo 模拟器中的相机

    python - 用于 facebook 的 Django/Python oauth2

    java - PersistenceException - 当多个 @OneToMany 关系与同一实体时抛出 org.hibernate.exception.ConstraintViolationException

    java - UI automator/有人遇到过 UI automator 的问题吗? (无法点击元素)