gpt4 book ai didi

javascript - react + Spring 启动: Can't get Authorization value from Header

转载 作者:行者123 更新时间:2023-12-01 18:12:32 25 4
gpt4 key购买 nike

我正在尝试创建一个使用 Spring Boot 应用程序作为后端的 React 应用程序。当用户登录操作成功时,用户会在名为“Authorization”的 header 参数中收到 Json Web token :

@Override
protected void successfulAuthentication(HttpServletRequest request, HttpServletResponse response, FilterChain chain,
Authentication authResult) throws IOException, ServletException {

String login = ((UserSS) authResult.getPrincipal()).getUsername();
String token = jwtUtil.generateToken(login);
response.addHeader("Authorization", "Bearer " + token);
}

我使用 Insomnia 来测试端点,它似乎有效,因为 token 已按预期检索:

Insomnia POST request to login endpoint

问题是使用 React 和 Axios 时找不到 header 值:

const [login, setLogin] = useState('');
const [password, setpassword] = useState('');

async function handleLogin(e) {
e.preventDefault();

const response = await Api.post('/login', {
login, senha: password
});

console.log(response.headers);
if(response.headers['authorization']){
history.push("/menu");
}
}

console.log(request.headers) result

尽管它在 XHR 内部,但我无法获取它:

Authorization header value inside XHR

我的 CORS 配置:

@Bean
CorsConfigurationSource corsConfigurationSource() {

final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
source.registerCorsConfiguration("/**", config.applyPermitDefaultValues());

return source;
}

知道它可能是什么吗?

最佳答案

问题的根源是我需要告诉 CORS 公开 header :

@Bean
CorsConfigurationSource corsConfigurationSource() {

final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
source.registerCorsConfiguration("/**", config.applyPermitDefaultValues());
//allow Authorization to be exposed
config.setExposedHeaders(Arrays.asList("Authorization"));

return source;
}

在我的前端中,“授权”以小写“授权”形式检索。

关于javascript - react + Spring 启动: Can't get Authorization value from Header,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60440949/

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