如何通过令牌而不是cookie中的jsession访问spring oauth2客户端后端api?

Posted

技术标签:

【中文标题】如何通过令牌而不是cookie中的jsession访问spring oauth2客户端后端api?【英文标题】:How can i access spring oauth2 client backend api by token instead of jsession in cookie? 【发布时间】:2020-03-28 09:45:46 【问题描述】:

我知道你可能被标题弄糊涂了。请看图片。

我有一个由 spring security 和 spring security oauth2 客户端保护的后端服务器。

@EnableWebSecurity
public class OAuth2ClientSecurityConfig extends WebSecurityConfigurerAdapter 

    @Override
    protected void configure(HttpSecurity http) throws Exception 
        http.authorizeRequests()
                .anyRequest().authenticated()
                .and()
                .oauth2Login();
    

当我访问 localhost:8080/api/get/id 在 cookie 中使用 JSessionId 时,这工作正常。

但我想使用基于令牌的身份验证,以便我的 Angular 应用程序可以访问我的后端。我该怎么办?

登录后如何获取令牌而不是 cookie?

请给我一些建议,提前谢谢你。

【问题讨论】:

【参考方案1】:

此解决方案有 3 个部分,如我的教程 + 代码示例中所述: https://authguidance.com/2017/09/24/basicspa-overview/

第 1 步:使用基于标准的授权服务器 (AS)

第 2 步:在 Angular 应用中使用 oidc 客户端库将用户重定向到 AS 以登录并获取访问令牌

第 3 步:验证 API 中的访问令牌

【讨论】:

以上是关于如何通过令牌而不是cookie中的jsession访问spring oauth2客户端后端api?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Http 和 Secure 将 Jwt 令牌存储在 Cookie 中,而不是 Javascript 中的 LocalStorage

使用带有令牌而不是 Cookie 的 Django 会话框架?

sessionStorage 与 cookie 中的 JWT 令牌?

sessionStorage 与 cookie 中的 JWT 令牌?

通过 cookie 标头发送令牌身份验证信息是不是安全?

将 JWT 令牌存储到 HttpOnly cookie 中