在 Spring Boot 中使用 JWT 进行简单的身份验证
Posted
技术标签:
【中文标题】在 Spring Boot 中使用 JWT 进行简单的身份验证【英文标题】:Simply authentication with JWT in Spring Boot 【发布时间】:2018-07-04 23:50:24 【问题描述】:我是安全方面的新手,所以这项任务几乎不需要帮助。我开发了小型应用程序,我只需要通过凭据对用户进行身份验证,并返回没有任何角色或范围的 jwt 令牌(用户将使用所有其余服务)。
我只需要区分认证用户和匿名用户,并验证令牌。
我查看了很多教程,但它们对于我的目的来说太复杂了。
有我的问题,我将不胜感激任何帮助或一些指导,我应该做什么以及如何做:
-
我发现其中一个教程使用了 OAuth2。真的很需要
为我的目的实施 OAuth2?
我应该使用哪个依赖项? jjwt 还是 spring security jwt?
确实需要授权服务器和资源服务器,或者存在
更简单的方法?
谢谢。
【问题讨论】:
【参考方案1】:回答这个问题已经很晚了,但如果有人仍在寻找答案,仍然会回答这个问题。假设您已经实现了对凭据的身份验证,但正在寻求 JWT 的帮助,请查看我的回答 JWT Token is always received as expired while parsing
希望这会有所帮助。
【讨论】:
【参考方案2】:以下是对您问题的简短回答,希望能帮助您进一步研究:
您不需要实现自己的 OAuth2 服务器。您可以使用现有的符合 OAuth2 的应用程序,例如 Keycloak 或 Mitreid。我们发现 Keycloak 在未来更加丰富且易于使用。
如果您只是接收和验证 JWT 令牌,那么 Spring 将为您完成。但要创建 JWT 令牌,您需要使用 jjwt 或 nimbus-jose-jwt 等第三方库。
再次,您可以选择创建自己的 Spring 应用程序,该应用程序将进行身份验证和创建 JWT 令牌,但要完全符合 OAuth2 还需要更多时间。我的建议是只使用现有的 OAuth2 应用程序,例如 Keycloak。 资源服务器是您需要创建的,并且是由 JWT 令牌保护和访问的实际应用程序。
【讨论】:
以上是关于在 Spring Boot 中使用 JWT 进行简单的身份验证的主要内容,如果未能解决你的问题,请参考以下文章