Firebase身份验证具有有效Firebase令牌的不受信任java客户端
我正在构建一个小型Java客户机,它的前端有一个角度,可以分发给客户机 目前,我有一个登录屏幕,通过Angular返回一个有效的firebase令牌。我不确定的地方是如何使用该令牌根据应用程序的Java部分对用户进行身份验证,以便Java客户端可以执行文件上传等操作 使用Admin SDK,我可以执行以下操作:Firebase身份验证具有有效Firebase令牌的不受信任java客户端,java,firebase,firebase-authentication,firebase-admin,Java,Firebase,Firebase Authentication,Firebase Admin,我正在构建一个小型Java客户机,它的前端有一个角度,可以分发给客户机 目前,我有一个登录屏幕,通过Angular返回一个有效的firebase令牌。我不确定的地方是如何使用该令牌根据应用程序的Java部分对用户进行身份验证,以便Java客户端可以执行文件上传等操作 使用Admin SDK,我可以执行以下操作: public FirebaseAuth firebaseAuth() throws IOException { FileInputStream serviceAccount =
public FirebaseAuth firebaseAuth() throws IOException {
FileInputStream serviceAccount = new FileInputStream(new ClassPathResource(SERVICE_ACCOUNT_KEY).getFile());
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredentials(GoogleCredentials.fromStream(serviceAccount))
.setDatabaseUrl(String.format("https://%s.firebaseio.com/", DATABASE_NAME))
.build();
FirebaseApp.initializeApp(options);
return FirebaseAuth.getInstance();
}
然后,我可以按照标准流程根据Firebase验证令牌并获取用户详细信息
因为我将Angular前端和Java客户端分发给最终用户,所以我不能使用AdminSDK
我该如何着手解决这个问题?是否有其他类型的流我应该研究?或者我可以使用Firebase令牌吗 Firebase Admin SDK无法将其访问范围限定为单个经过身份验证的用户。它用于您完全控制的后端系统。使用服务帐户初始化,它将有权执行服务帐户可以执行的任何操作。它不打算分发给最终用户或任何您不信任的实体,以完全访问您的Firebase项目
当涉及到对最终用户的实际身份验证时,Firebase身份验证仅适用于客户端应用程序(Android、iOS、web和衍生环境)。我完全理解第一段,并认为问题非常清楚。我也理解第二部分,我的问题是什么是替代解决方案你的替代方案在第二段-使用Android,iOS,或者可以使用客户端auth SDK的web应用程序。如果您建议只编写一个移动应用程序,我感觉您完全忽略了这个问题。Firebase身份验证在移动应用程序之外没有真正的用途。如果你问你如何在没有现有客户端SDK的情况下使用Firebase令牌,这对于堆栈溢出来说太宽泛了。还有一个REST API,但根本不清楚如何以满足你的情况的方式简单地说明它的使用(这是相当模糊的)。