我正在Spring安全模块的帮助下为我的REST服务(密码授予类型)实现OAuth2。我'使用postgreSQL作为我的令牌存储。一切正常,但我需要添加更改用户密码的可能性。如果用户更改了密码,则应删除/忘记旧令牌。
我使用JdbcTokenStore Spring服务实现此功能:
public void updatePassword(User user, String newPassword) {
...
// Update password in database
clearUserTokens(user.getUsername());
}
private void clearUserTokens(String userName) {
Collection<OAuth2AccessToken> tokens = jdbcTokenStore.findTokensByUserName(userName);
tokens.stream().forEach(jdbcTokenStore::removeAccessToken);
}
这种做法是否正确?是否有处理这种情况的标准方法?