gpt4 book ai didi

spring-security - Spring Boot + OAuth2 + Google Login - 如何实现注销

转载 作者:行者123 更新时间:2023-12-04 07:06:06 28 4
gpt4 key购买 nike

我有一个使用 Spring Boot + OAuth2 + Google 登录的身份验证服务器实现。以及用于我的后端数据服务的资源服务器。我使用过 JDBC token 存储。一切都很好。但是我很难理解注销实现。目前,每当用户单击注销时,我只是从浏览器本地存储中删除 token ,但 session 在 Auth 服务器中保持事件状态,因此我不需要再次登录。我想要的是每当使用单击注销时,我想使 session 无效并强制他再次登录。

有什么好的方法可以做到这一点吗?我目前在 Spring Boot Auth 服务器配置中没有任何注销配置。

谢谢

最佳答案

尝试注册一个 LogoutSuccessHandler 来做到这一点。类似的东西:

@Configuration
@EnableWebSecurity
@EnableResourceServer
public class SecurityConfig extends ResourceServerConfigurerAdapter {

@Bean
public DefaultTokenServices tokenServices() {
return new DefaultTokenServices();
}

@Override
public void configure(ResourceServerSecurityConfigurer resources) throws Exception {
resources.resourceId("myResourceId");
resources.tokenServices(tokenServices());
}

@Override
public void configure(HttpSecurity http) throws Exception {
// configure http security here...

http.logout().logoutSuccessHandler(new SimpleUrlLogoutSuccessHandler() {
@Override
public void onLogoutSuccess(HttpServletRequest request,
HttpServletResponse response,
Authentication authentication) {
OAuth2AccessToken token = tokenServices().getAccessToken((OAuth2Authentication) authentication);
tokenServices().revokeToken(token.getValue());
}
});

}
}

关于spring-security - Spring Boot + OAuth2 + Google Login - 如何实现注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29733604/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com