我们在spring-boot V1.5.7上开发了一个非常好的API,它由OAuth以“密码”授权类型保护。我们只使用访问令牌,没有使用刷新令牌。访问令牌的有效期设置为15分钟。最初,我们点击令牌端点并获取令牌并使用服务。虽然服务的使用非常频繁,但访问令牌在15分钟后就会过期。我们期望做的是,当服务没有被召唤15分钟时,令牌应该过期。
有人可以帮我吗?
答案 0 :(得分:1)
看起来,首先我们需要知道 为什么我们使用了访问令牌?
访问令牌用于访问受保护资源。它具有有效期,例如1分钟,10分钟等。在此之后,令牌变为无效。要获得新的有效令牌,您应该使用刷新令牌。尽管您可以使用您的用户名和密码获得一个全新的令牌。即使您在到期时间内调用任何API,但令牌在到期时间后无效。如果您未在到期时间内调用任何API,则令牌也会失效。这是预期的行为。
为什么会这样?
假设您从服务器获取访问令牌,并使用访问令牌从服务器访问受保护资源。不知何故,中间的人通过嗅探包获得令牌。然后,入侵者可以轻松地访问资源,并尽可能多地访问资源。从技术上讲,我们可以说,您的帐户遭到黑客入侵
要防止此类攻击,您应该定义适合您的用例的令牌有效期。所以这比以前更安全
我强烈建议允许系统刷新令牌。
但是,您也可以将系统配置为重用令牌。这link可能是一种帮助。
答案 1 :(得分:0)
您可以使用OauthRestTemplate(如果您不想编写自己的逻辑),它将在过期后获取新的访问令牌(使用刷新令牌)。如果您计划在应用程序中使用OAuth,则没有理由不使用刷新令牌。