Здравствуйте, я создаю веб-приложение, и я только что реализовал возможность входа и регистрации, теперь проблема выходит из системы ..
У меня есть кнопка, которая вызывает эту функцию для выхода из системы:
const logoutUser = () => {
axios({
url: API.logout,
method: "POST",
withCredentials: true,
headers: {
"X-CSRF-TOKEN": _csrf.token,
},
});
};
И это моя конфигурация Spring Security:
@Override
protected void configure(HttpSecurity http) throws Exception{
http
.authorizeRequests()
.antMatchers("/api/getalltopics").permitAll()
.antMatchers("/api/findtopicbycodename/**").permitAll()
.antMatchers(HttpMethod.POST,"/api/createtopic").hasRole("ADMIN")
.antMatchers("/me").permitAll()
.antMatchers("/login", "/registeruser").permitAll()
.antMatchers("/dologoutuser").permitAll()
.antMatchers("/getcsrftoken").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.defaultSuccessUrl("http://192.168.1.105:3000/", true)
.and()
.logout()
.logoutUrl("/dologoutuser")
.deleteCookies("JSESSIONID");
http.cors(withDefaults());
}
@Bean
CorsConfigurationSource corsConfigurationSource(){
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.setAllowedOrigins(Arrays.asList("http://192.168.1.105:3000"));
corsConfiguration.setAllowedMethods(Arrays.asList("POST"));
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/dologoutuser", corsConfiguration);
return source;
}
(Да, я знаю, вы можете поместить несколько ссылок в один .antMatchers, этот код в настоящее время обрабатывается)
Теперь, когда я нажимаю кнопку выхода из системы, в моей консоли появляются 3 ошибки:
1. OPTIONS http://192.168.1.105:8080/login?logout 403
2. Access to XMLHttpRequest at 'http://192.168.1.105:8080/login?logout' (redirected from 'http://192.168.1.105:3000/dologoutuser') from origin 'http://192.168.1.105:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
3. Uncaught (in promise) Error: Network Error
at createError (createError.js:16)
at XMLHttpRequest.handleError (xhr.js:81)
Кроме того, если я обновлю sh страницу с помощью клавиши F5 после нажатия кнопки выхода из системы, она фактически выводит меня из системы, но, очевидно, я что-то здесь не так делаю. Спасибо за любую помощь