我正在使用 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
Run Code Online (Sandbox Code Playgroud)
我的第二次尝试是创建一个服务(类似于“PublicKeyResolver”)来请求谷歌的网址并根据“kid”声明值提取正确的公钥:
mp.jwt.verify.publickey.location=http://localhost:8080/api/certs/publicKey
Run Code Online (Sandbox Code Playgroud)
该策略失败了,因为“授权”http 标头未包含在公钥请求中。
有没有办法集成 Quarkus 和 Firebase 身份验证?