Flutter 使用自定义令牌的Firebase身份验证错误

Flutter 使用自定义令牌的Firebase身份验证错误,flutter,firebase-authentication,Flutter,Firebase Authentication,我正在尝试使用KakaoTalk凭据对firebase中的用户进行身份验证。为此,我从KakaoTalk获得了accesstoken。然后尝试使用该令牌对用户进行身份验证。这是我的密码: String token = await kakaoService.getAccessToken(); await firebaseAuth.signInWithCustomToken( token: token, ); 获得如下访问令牌:nmAzFpOF9

我正在尝试使用KakaoTalk凭据对firebase中的用户进行身份验证。为此,我从KakaoTalk获得了
accesstoken
。然后尝试使用该令牌对用户进行身份验证。这是我的密码:

      String token = await kakaoService.getAccessToken();
      await firebaseAuth.signInWithCustomToken(
        token: token,
      );
获得如下访问令牌:
nmAzFpOF9XrijP-ZoFpQbVluGZ4lLDbZxOCXIAo9c-sAAAFxrID6xA

但是得到这个错误:

自定义令牌格式不正确。请检查文件。[无效的断言格式。需要3个点分隔的段。]


这里怎么了?我遗漏了什么吗?

似乎令牌通过
kakaoService返回。getAccessToken()
不是用于Firebase身份验证的有效自定义令牌。事实上,给出了错误消息,它甚至似乎不是JWT

Firebase身份验证的自定义令牌必须具有特定格式,如中所述。您通常希望按照此过程获取Firebase身份验证的有效令牌:

  • 将用户登录到身份提供程序(在您的案例中是KakaoTalk)
  • 从提供者处解码令牌,以获取有关用户的已验证信息
  • 使用Firebase身份验证管理SDK为用户创建自定义令牌
  • 使用该令牌登录客户端上的Firebase

  • 步骤2和3必须在受信任的环境中进行,例如您的开发机器、您控制的服务器或云功能。

    似乎令牌通过kakaoService返回。getAccessToken()不是用于Firebase身份验证的有效自定义令牌。事实上,给出了错误消息,它甚至似乎不是JWT

    Firebase身份验证的自定义令牌必须具有特定格式,如中所述。您通常希望按照此过程获取Firebase身份验证的有效令牌:

  • 将用户登录到身份提供程序(在您的案例中是KakaoTalk)
  • 从提供者处解码令牌,以获取有关用户的已验证信息
  • 使用Firebase身份验证管理SDK为用户创建自定义令牌
  • 使用该令牌登录客户端上的Firebase

  • 第2步和第3步必须在受信任的环境中进行,例如您的开发机器、您控制的服务器或云功能。

    查看有关使用自定义令牌的Firebase文档:

    Firebase需要成功解码客户端提交的身份验证令牌,然后使用其声明验证对Firebase资源的访问。因此,Firebase要求自定义令牌按照其文档中规定的规则进行格式化。(它们描述了一个非常典型的JSON Web令牌。)


    您从KakaoTalk获得的访问令牌不符合Firebase的令牌规则,因此Firebase不知道如何使用它。我建议您重新访问KakaoTalk文档,看看它是否可以生成Firebase可以使用的标准RS256 JWT令牌。

    查看有关自定义令牌使用的Firebase文档:

    Firebase需要成功解码客户端提交的身份验证令牌,然后使用其声明验证对Firebase资源的访问。因此,Firebase要求自定义令牌按照其文档中规定的规则进行格式化。(它们描述了一个非常典型的JSON Web令牌。)


    您从KakaoTalk获得的访问令牌不符合Firebase的令牌规则,因此Firebase不知道如何使用它。我建议您重新访问KakaoTalk文档,看看它是否可以生成Firebase可以使用的标准RS256 JWT令牌。

    哦,我现在看到这个问题已经得到了回答。我猜我不应该一边写咖啡一边写咖啡。谢谢,我感谢你的努力。哦,我现在看到这个问题已经得到了回答。我猜我不应该一边写咖啡一边写咖啡。谢谢,我感谢你的努力。