1

我創建了一個認證服務器和資源服務器,兩者都正常工作,唯一的問題是刷新令牌,我希望在調用POST /oauth/token後使用grant_type=refresh_token更改,但是,spring返回相同的刷新標記。刷新訪問令牌後彈出OAuth2刷新令牌

我想知道在調用oauth端點刷新訪問令牌時是否有辦法獲得新的刷新標記?

回答

5

通過在DefaultTokenServices類考慮看看refreshAccessToken方法:

public OAuth2AccessToken refreshAccessToken(String refreshTokenValue, 
              TokenRequest tokenRequest) { 

    // Omitted 
    if (!reuseRefreshToken) { 
     tokenStore.removeRefreshToken(refreshToken); 
     refreshToken = createRefreshToken(authentication); 
    } 
    // Omitted 
} 

你應該以某種方式reuseRefreshToken標誌設置爲false。你可以在你的AuthorizationServerConfigurerAdapter實施中做到這一點:

@Configuration 
@EnableAuthorizationServer 
public class AuthorizationServer extends AuthorizationServerConfigurerAdapter { 
    // Other methods 

    @Override 
    public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception { 
     endpoints 
       .reuseRefreshTokens(false); 
    } 
} 
+1

謝謝你的男人,工作就像一個魅力! – nspessot