当前位置: 首页 > 知识库问答 >
问题:

Quarkus和Firebase认证

祁杰
2023-03-14

我正在使用Quarkus(1.3.2.final)开发一个新的REST服务,并试图将Firebase身份验证与Smallrye-Jwt集成,但失败了。

我的第一次尝试是将publicKey.location指向Google的URL,但失败了,因为有两个键,检查签名的正确publicKey取决于jwt“kid”标头值:

mp.jwt.verify.publickey.location=https://www.googleapis.com/robot/v1/metadata/x509/securetoken@system.gserviceaccount.com
mp.jwt.verify.issuer=https://securetoken.google.com/<projectId>
quarkus.smallrye-jwt.auth-mechanism=MP-JWT
quarkus.smallrye-jwt.enabled=true
mp.jwt.verify.publickey.location=http://localhost:8080/api/certs/publicKey

有一种方法可以集成Quarkus和Firebase认证?

共有1个答案

郭阳曜
2023-03-14

Quarkus和Firebase有一种集成的html" target="_blank">方法。根据Quarkus文档,mp.jwt.verify.publickey.location是公钥的位置。此外,还定义了受支持的公钥格式(https://quarkus.io/guides/security-jwt#supported-public-key-formats):

公钥可以按优先顺序指定的下列任何格式进行格式化:

  • 公钥加密标准#8(PKCS#8)PEM
  • JSON Web密钥(JWK)
  • JSON Web密钥集(JWKS)
  • JSON Web键(JWK)Base64 URL编码
  • JSON Web密钥集(JWKS)Base64 URL编码

mp.jwt.verify.publickey.location=https://www.googleapis.com/service_accounts/v1/jwk/securetoken@system.gserviceaccount.com

 类似资料:
  • 我建立了一个web平台,允许用户用一个用户帐户注册多个web应用程序。每个应用程序都有自己独立的firebase数据库。是否可以使用firebase身份验证并在不同的firebase数据库之间共享相同的身份验证?我的意思是通过一个用户库单点登录到多个firebase数据库。

  • Quarkus有一个https://Quarkus.io/guides/scheduler来调度任务。但是,我希望使用。Quarkus允许这样吗?例如,在wildfly中,必须使用,因为服务器正在管理线程,而不允许用户管理线程。这对Quarkus也有效吗?

  • EclipseLink有可能和夸库斯一起使用吗?还是夸库斯太难与Hibernate耦合了? 我们正在选择我们的MP实现的过程中,我们希望尽可能接近参考信息 我在https://quarkus.io/guides/甚至这个论坛上都没有看到太多信息来表明eclipselink也可以与Quarkus一起使用。 任何关于夸库斯为什么与JPA的一个特定的impl(如果是的话)绑得如此紧密的指示也将是受欢迎的

  • 我正在尝试使用Firebase身份验证使用Facebook个人资料唱歌,但我在运行代码时遇到错误: java.lang.IllegalStateException:名称为 [DEFAULT] 的 FirebaseApp 不存在。 这是我的代码。有人能帮我解决那个问题吗?

  • 在我的quarkus应用程序中有两个命名的数据源,我们称之为A和B: Quarkus.datasource.a.db-kind=Oracle Quarkus.datasource.b.db-kind=Oracle 因此,每次应用程序启动时,我都会收到这样的通知: 警告:无法确定默认数据源的数据库类型

  • 主要内容:创建用户,登录,注销在本章中,我们将向您介绍如何使用Firebase电子邮件/密码身份验证。在开始之前,需要设置登录方法,参考以下图所示 - 点击设置登录方法,然后选择电子邮件地址/密码,打开启用并保存,如下图所示 - 创建用户 要验证用户,可以使用方法。 示例 让我们来看看下面的一个例子。参考代码 - 接下来,您可以检查Firebase仪表板中的数据库,并查看用户是否已创建成功。如下所示,已经创建了一个用户账号 -