当前位置: 首页 > 知识库问答 >
问题:

Spring Boot OAuth2 Google登录-如何实现注销

纪正德
2023-03-14

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

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

谢谢

共有1个答案

邹驰
2023-03-14

尝试注册一个Logout成功处理程序来做到这一点。大致如下:

@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());
                      }
                  });

    }
}
 类似资料:
  • 本文向大家介绍Python实现注册登录系统,包括了Python实现注册登录系统的使用技巧和注意事项,需要的朋友参考一下   表单在网页中主要负责数据采集功能。一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。 表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。 表单按钮:包括提交按钮、复位按钮

  • 我有一个android应用程序,我正在尝试在其中实现linkedIn登录。LinkedIn SDK已经成功集成,我正在获取用户信息以及电子邮件地址。 以下是我的应用程序在谷歌登录时的工作方式: 1)在手机上获取访问令牌 2)发送带有访问令牌的电子邮件地址到服务器 3) 用我通过谷歌的webapi收到的访问令牌获取用户的详细信息。 4) 如果回复电子邮件与从移动设备接收的电子邮件匹配,则检查该电子邮

  • 本文向大家介绍js实现登录与注册界面,包括了js实现登录与注册界面的使用技巧和注意事项,需要的朋友参考一下 完成登录与注册页面的HTML+CSS+JS,其中的输入项检查包括: 用户名6-12位 首字母不能是数字 只能包含字母和数字 密码6-12位 注册页两次密码是否一致 html代码: css代码: javascript代码: 注册界面html代码: 运行结果如下: 以上就是本文的全部内容,希望对

  • 本文向大家介绍Spring+MongoDB实现登录注册功能,包括了Spring+MongoDB实现登录注册功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Spring,Spring MVC,MongoDB实现登录注册 的具体代码,供大家参考,具体内容如下 工程目录:  Spring配置文件: Web.xml: Model层: UserDao: UserDaoImpl: Login

  • 本文向大家介绍Android实现登录注册功能封装,包括了Android实现登录注册功能封装的使用技巧和注意事项,需要的朋友参考一下 我们都知道Android应用软件基本上都会用到登录注册功能,那么对一个一个好的登录注册模块进行封装就势在必行了。这里给大家介绍一下我的第一个项目中所用到的登录注册功能的,已经对其进行封装,希望能对大家有帮助,如果有什么错误或者改进的话希望各位可以指出。 我们都知道登录