微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以在应用程序的前端远程删除Cookie?

如何解决是否可以在应用程序的前端远程删除Cookie?

我正在基于其他应用程序提供的API调用从我的应用程序远程注销。 通常,当用户使用我的应用程序注销时,我使用Spring .logout()。deleteCookies()。

现在我们为许多应用程序使用一个授权服务器,我们需要确保从其中一个注销也将注销其他应用程序。

因此,基本思想是授权服务器将调用我的API,例如/ user / logout 当我接到这个电话时,我想要和spring .logout()。deleteCookies()一样的东西。我该如何实现?

是否可以将新的API添加到Spring配置中?说更改此配置:

.logout()
.logoutUrl(logoutUrl)
.invalidateHttpSession(true)
.clearauthentication(true)
.logoutSuccessUrl("/")
.deleteCookies("JSESSIONID")

类似:

.logout()
.logoutUrl(logoutUrl || 'api/user/logout)
.invalidateHttpSession(true)
.clearauthentication(true)
.logoutSuccessUrl("/")
.deleteCookies("JSESSIONID")

我整个弹簧的配置是:

http
                        .addFilterBefore(new RedirectUrlFilter(projectDomainPath),OAuth2LoginAuthenticationFilter.class)
                        .csrf().disable().cors()
                        .and()
                        .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.IF_required)
                        .and()
                        .authorizeRequests().antMatchers("/static/**","/logout","/api/user/k_push_not_before","/api/user/k_logout").permitAll()
                        .anyRequest().authenticated()
                        .and()
                        .addFilter(new JwtAuthorizationFilter(authenticationManager(),secret,clientId,"nblues",tokenVerificationUrl))
                        .logout()
                        .logoutUrl(logoutUrl)
                        .logoutRequestMatcher(new AntPathRequestMatcher("/api/user/k_push_not_before"))
                        .invalidateHttpSession(true)
                        .clearauthentication(true)
                        .logoutSuccessHandler(new CustomlogoutSuccessHandler())
                        .logoutSuccessUrl("/")
                        .deleteCookies("JSESSIONID")
                        .and()
                        .oauth2Login()
                        .loginPage(DEFAULT_AUTHORIZATION_REQUEST_BASE_URI + "/" + realm);

解决方法

您可以尝试这样的事情

 let records =    [{
       "Name":"Stephen","Age":10,"School":"PSB"
    },{
       "Name":"Rocky","Age":09,"School":"BSR"
    }];

await Post.create(records);  

甚至添加.logout().permitAll() .deleteCookies("JSESSIONID") .invalidateHttpSession(true) .clearAuthentication(true) .logoutUrl("/logout") .logoutRequestMatcher(new AntPathRequestMatcher("/logout"))

可能看起来像这样

.logoutSuccessHandler(new CustomLogoutSuccessHandler())

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。