【问题标题】:spring oauth2 how to get a new refresh token every timespring oauth2如何每次都获取新的刷新令牌
【发布时间】:2016-06-22 05:37:38
【问题描述】:

当我调用刷新令牌时,Web 服务会返回一个新的访问令牌和旧的刷新令牌,因为访问令牌尚未过期。当我调用刷新令牌时,此 Web 服务是否有任何配置返回我一个新的访问令牌和一个 new 刷新令牌?

【问题讨论】:

    标签: spring spring-security spring-security-oauth2 spring-oauth2


    【解决方案1】:

    您可以使用 AOP 在生成新令牌之前通过删除旧令牌或更改其有效期来使令牌无效,但如果您这样做,那么您将使其他客户端使用的所有刷新令牌无效。

    【讨论】:

    • spring security oauth2 上是否有任何方法可以发出一次性使用刷新令牌并将刷新令牌与访问令牌一起刷新??我有一个客户端需要对其进行身份验证的 android 应用程序oauth2 服务器,然后他不想在第一次身份验证后再次登录。如果刷新令牌过期,他需要再次提供用户名和密码,我需要避免这种情况..
    • 你可以让你的刷新令牌失效日期太远,然后拦截生成的令牌,使刷新令牌失效,让它生成一个失效日期太远的新令牌。
    • 如何使刷新令牌无效并生成新的刷新令牌??
    • 基于您的 TokenStore,例如在我的情况下它是 DataSource TokenStore,所以我从 DB 中删除行。
    【解决方案2】:

    可以将 Spring 配置为不重用刷新令牌 - 默认情况下它会重用 - 这应该可以解决问题。

    @Configuration
    public class OAuth2Config extends AuthorizationServerConfigurerAdapter {
        @Override
        public void configure(AuthorizationServerEndpointsConfigurer configurer) throws Exception {
            configurer.reuseRefreshTokens(false);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2012-06-29
      • 2012-07-21
      • 2018-02-27
      • 2017-05-29
      • 2020-11-24
      • 2017-04-14
      • 2017-12-02
      • 2015-06-02
      • 1970-01-01
      相关资源
      最近更新 更多