使用Spring Security和Firebase身份验证的REST服务

MJ.*_*MJ. 11 rest spring spring-security firebase firebase-authentication

有没有一种简单的方法可以将Firebase身份验证与Spring Security集成(用于REST服务)?

根据我的阅读,我可能需要使用JWT令牌(通过Firebase获得),使用它来验证Spring服务,最后通过Firebase验证服务中的令牌.但我找不到任何关于在Spring Security中使用JWT的(简单)文档.

我还希望能够提供使用Basic Auth而不是JWT的/ auth/login端点,以便我可以使用电子邮件/密码凭据通过Firebase获取JWT令牌.但这意味着在服务的一个端点启用Basic Auth,在其他所有端口启用JWT Auth.不确定是否可能.

Ste*_*efa 1

简短的回答:不。

长答案:无论 Firebase 如何,您都应该创建自己的 JWT。当您从 Firebase 收到 JWT 时,请验证其完整性。然后,根据令牌中的数据发行您自己的令牌。然后您只需将其适配到各种 OAuth 提供商即可。这样您就可以避免每个请求都往返于 firebase。

为了在每个请求上对用户进行身份验证(无状态身份验证),您可以添加具有最高优先级的过滤器。从您正在过滤的 http 请求中获取 JWT 并验证其完整性。如果一切正常,请在 SecurityContextHolder 中设置身份验证。