使用Google时使用oauth2注销

时间:2019-06-11 19:22:28

标签: spring spring-boot spring-security google-oauth spring-oauth2

在spring boot 2网站中,用户可以决定通过电子邮件/密码(创建帐户后)登录还是使用facebook / google logi(oauth2)

实际上

用户x通过google连接...注销

用户y尝试通过Google连接,但使用用户x会话。

未通过Google完成注销...

我希望注销支持该用例

用户x通过Google连接,退出。

用户y,单击以连接到google,需要输入用户名/密码(不想通过先前的用户进行连接)

@Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .csrf().disable()
            .authorizeRequests()
            .antMatchers("/oauth_login", "/loginFailure", "/", "/logout")
            .permitAll()
            .anyRequest()
            .authenticated()
            .and()
            .oauth2Login()
            .loginPage("/oauth_login")
            .authorizationEndpoint()
            .baseUri("/oauth2/authorize-client")
            .authorizationRequestRepository(authorizationRequestRepository())
            .and()
            .tokenEndpoint()
            .accessTokenResponseClient(accessTokenResponseClient())
            .and()
            .defaultSuccessUrl("/loginSuccess")
            .failureUrl("/loginFailure")
            .and()
            .logout()
            .logoutSuccessUrl("/")
            .invalidateHttpSession(true);
    }

如果我删除.csrf()。disable(),则会收到403错误。不明白为什么 html注销

 <a href="#" onclick="document.getElementById('logoutForm').submit();">Logout</a>
 <form id="logoutForm" action="/logout" method="post">
    <input hidden type="submit" value="Sign Out"/>
 </form>

编辑

似乎有很多此类错误的线程...

喜欢这个...

google account logout and redirect

似乎是令牌问题。

所以在公共计算机上使用oauth只是危险...

0 个答案:

没有答案