Spring Security JWT - 通过授权标头的邮递员身份验证有效,但从我的 Angular 前端不起作用
Posted
技术标签:
【中文标题】Spring Security JWT - 通过授权标头的邮递员身份验证有效,但从我的 Angular 前端不起作用【英文标题】:Spring Security JWT - Postman authentication through Authorization header works but from my Angular front end doesn't work 【发布时间】:2020-10-08 22:38:55 【问题描述】:我有一个 Web 应用程序,后端使用 Java、Spring Boot 和 Spring Security,前端使用 Angular。 我已经使用 Spring Security 实现了登录,并且身份验证似乎有效 - 在 Postman 以及我的应用程序的前端中,我收到了一个 jwt 令牌。这两个令牌似乎都是正确的,因为无论我使用在 Postman 中还是在前端获取的令牌,当我在向服务器发出其他请求时在 Authorization 标头中发送任何这些令牌时,我的应用程序的后端都会接受该令牌我从服务器得到 200 OK 响应。 但这里的情况各不相同:我的请求只有在我从 Postman 发送时才被授权。当我从应用程序的前端发送(我认为)相同的请求时,后端会抛出 403 禁止。自然地,我认为我必须从前端发送请求而不是从邮递员发送请求,但我找不到任何区别。据我所知,我发送了相同的方法、相同的正文、相同的标头(带有授权令牌) 你知道那里会发生什么吗?
【问题讨论】:
你能从 Angular 到 Spring 应用程序显示请求的标头吗? 【参考方案1】:原因是我需要在扩展 WebSecurityConfigurerAdapter 的类中启用 Spring Security 中的 cors:
protected void configure(HttpSecurity http) throws Exception
http
.cors().and()
【讨论】:
以上是关于Spring Security JWT - 通过授权标头的邮递员身份验证有效,但从我的 Angular 前端不起作用的主要内容,如果未能解决你的问题,请参考以下文章
社交登录,spring-security-oauth2 和 spring-security-jwt?
总结关于spring security 使用 JWT 和 账户密码登录 整合在一起的新感悟
Spring Security 结合了 Container Security 和 JWT Token