我想重构一个整体的Spring Boot应用程序,基本上是一个具有登录功能的Web应用程序。我们已经有一个Security实现,该实现可以将会话ID存储为cookie,但是我对此几乎一无所知,并且对于该主题来说是全新的。由于独立的身份验证服务,JWT似乎是微服务的更好解决方案。
所以我的问题是:
创建JWT身份验证服务并交换会话ID实现是否需要大量工作? (因为我是为我的学士学位论文而做的,所以有明确的截止日期)
使用微服务时我可以保留会话ID吗?
也许还有其他实现身份验证的方法吗?
答案 0 :(得分:0)
创建JWT身份验证服务和交换是否需要大量工作 会话ID的实现? (因为我是为我的单身汉做的 论文并有明确的截止日期)
这个问题很难回答,因为它取决于您的特定实现的紧密程度。当然,这不是小事。
使用微服务时我可以保留会话ID吗?
是的,但是您需要弄清楚如何跨微服务联合会话(即,如何从一个服务到另一个服务获取会话中的信息)。总体而言,这表示服务之间存在紧密耦合的风险,因此我建议仅将此视为过渡步骤。
也许还有其他实现身份验证的方法?
一天多长。话虽这么说,但没有特别的理由,我通常会选择坚持到底。 p>
答案 1 :(得分:0)
不建议在微服务中使用典型的用户会话。您应该使用无状态架构和令牌(存储在数据库或JWT中的令牌)。
最好使用Spring Boot OAuth2。
您应该使用Spring Boot来实现授权服务器和资源服务器。
授权服务器:
资源服务器:
render() {
// Add this block to footer
return (
<div
style={{ display: "block", margin: "0 auto", verticalAlign: "middle" }}
>
<Button onClick={this.play} className="mr-3">
play()
</Button>
<Button onClick={this.pause} className="mr-3">
pause()
</Button>
<Button onClick={this.toggleFullScreen} className="mr-3">
FullScreen()
</Button>
</div>
);
}
类以保护URL映射。