基于Vaadin Flow和Firebase的口令认证 [英] Password Authentication with Vaadin Flow and Firebase

查看:36
本文介绍了基于Vaadin Flow和Firebase的口令认证的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用https://start.spring.io设置了一个Spring Boot项目,包括Spring Security和Vaadin。然后,我将Vaadin版本设置为22.0.4,并按照本教程使用Vaadin Flow和Spring Security:https://vaadin.com/docs/v22/flow/tutorial/login-and-authentication

设置登录页面 这可以很好地工作,并根据具有虚拟用户的InMemoryUserDetailsManager检查登录尝试。正如您在本教程中看到的,这是在WebSecurity类中配置的,该类扩展了VaadinWebSecurityConfigurerAdapter

现在,我想使用电子邮件地址和密码对Firebase用户进行身份验证。因此,我设置了一个Firebase项目并添加了一个用户。我最初以为可以使用Firebase Admin SDK进行登录,但现在我认为这是不可能的。

如何使用Vaadin Flow作为前端框架,在Spring Boot应用程序中使用电子邮件地址和密码对Firebase用户进行身份验证?

推荐答案

FireBase有两种SDK:

  • 其常规SDK设计用于客户端、不受信任的环境,例如Web前端、Android应用或iOS应用。
  • ITSAdmin SDKs设计用于(通常是服务器端)受信任的环境,例如您的开发计算机、您控制的服务器或云函数/云运行。
只有常规的客户端SDK才有方法让用户登录。对于管理员SDK,这不是必需的,因为它们已经在受信任的环境中运行,并且这将以某种其他方式(通常是通过您从Firebase/云控制台下载的凭据文件)建立其凭据。

因此无法在服务器端代码上登录到Firebase。这也没有多大意义,因为可能会有很多用户同时访问服务器,那么谁是当前用户呢?

相反,在Firebase中,您通常通过一个常规SDK对客户端的使用进行签名,然后(如果需要)将ID令牌传递给服务器,在服务器上,您的代码(如果可用,通过Admin SDK)可以decode that ID token并确定发出请求的用户。

您可以在Admin SDK中mint your own ID token,但是那里的流程保持不变,并且您通常使用它来实现自定义登录提供程序。

这篇关于基于Vaadin Flow和Firebase的口令认证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆