用于令牌创建/验证的Firebase Rest API没有任何结果

时间:2019-05-21 01:34:42

标签: node.js firebase firebase-authentication firebase-admin

我们使用Firebase来验证登录过程,在后端,我们有一个Rest API实现,以验证正在传递的令牌。

我已经修改了.json文件,并在我的代码库中再次进行了验证。我已经从UID中提取了生成令牌的整个过程,这就是它的样子:

public void initialization(){
        try {
            FileInputStream refreshToken = new FileInputStream("c02955c26b.json");

            FirebaseOptions options = new FirebaseOptions.Builder()
                    .setCredentials(GoogleCredentials.fromStream(refreshToken))
                    .setDatabaseUrl("https://164d0.firebaseio.com")
                    .build();
            String uid = "Lp14BXL3xPVW7K8VZX28omynbWx1";
            FirebaseAuth firebaseAuth= FirebaseAuth.getInstance(FirebaseApp.initializeApp(options));
            System.out.println(" "+firebaseAuth); --> I see this on the console 
            String customToken = firebaseAuth.createCustomToken(uid);
            System.out.println(" "+customToken); 

            FirebaseToken decodedToken = firebaseAuth.verifyIdToken(customToken);
            String uidTranspose = decodedToken.getUid();
            System.out.println(" the UID sent is"+uid+"Obtained after transpose is"+uidTranspose);
            System.out.println(" the UID captured is this "+uid);

        }
        catch(Error e){
            System.out.println(" "+e.getLocalizedMessage());
            e.printStackTrace();
        }
        finally{
            System.out.println("Finally comes here ");
        }
    }

在创建令牌的某个地方,控制直接流到了finally块;而不记录错误或异常。

我不确定在这里是否缺少任何内容。

编辑1:编辑以添加完整的代码。

编辑2:我可以看到正在创建的令牌。但我无法验证因为它说这是自定义令牌,而不是Id令牌。我不确定是否可以访问Id令牌,或者是否有方法可以验证自定义令牌。

1 个答案:

答案 0 :(得分:0)

您无法使用自定义令牌调用verifyIdToken()。参见Verifying firebase custom token to get token ID fails when using jsonwebtoken