node.js - 如何使用 http POST 方法将当前用户(使用该应用程序的人)的 Firebase Id token 从 Flutter 应用程序发送到restapi?

标签 node.js firebase http flutter firebase-authentication

我创建了一个应用程序,使用 flutter 作为 UI,使用 Nodejs 中的 Restapi 作为后端。现在我想验证使用 firebase 身份验证注册的用户,发送当前用户的 firebase Id token 。为此,我使用 HTTP Post 方法发送 id token 。但出现错误。

示例代码:

        import 'package:http/http.dart' as http;

    FirebaseUser user = await FirebaseAuth.instance.currentUser();
       if(user!=null){
  Future<IdTokenResult> idtoken = user.getIdToken();
    }
 http.Response response = await http.post("https://www.something.com/something/something",
                              body:jsonEncode({
                                "name": name.text,
                                "pincode": "$pincode",
                                "token": idtoken,
                                "phone": "${widget.phoneNo}",
                              }),
                                  headers: {'Content-Type': 'application/json'},
                              );

出现错误:

     Unhandled Exception: Converting object to an encodable object failed: Instance of 'Future<IdTokenResult>'

P.S:建议编辑,如果问题有问题,我寻求想法 (提前感谢您的帮助:) )

最佳答案

您需要 token(String) 而不是 idtoken(IdTokenResult)

import 'package:http/http.dart' as http;

FirebaseUser user = await FirebaseAuth.instance.currentUser();

if(user!=null){
  IdTokenResult idtoken = await user.getIdToken(); 
  // get String token  
  String token = idtoken.token;
}
 http.Response response = await http.post("https://www.something.com/something/something",
                              body:jsonEncode({
                                "name": name.text,
                                "pincode": "$pincode",
                                "token": token,
                                "phone": "${widget.phoneNo}",
                              }),
                                  headers: {'Content-Type': 'application/json'},
                              );

关于node.js - 如何使用 http POST 方法将当前用户(使用该应用程序的人)的 Firebase Id token 从 Flutter 应用程序发送到restapi?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62302389/

相关文章:

android - 如何从 Firebase 中的实时数据库获取数据

http - 子域可以删除域 cookie 吗?

firebase - 将 Firestore 安全规则集 () 转换为字符串值

Firebase 函数 - admin.firestore() get() 在本地服务上引发身份验证错误

Ruby HTTP 获取参数

asp.net - 通过 HTTP header 将值从一个 ASP.NET 应用程序传递到另一个

node.js - Jasmine Node - 包括助手

node.js - 如何使用 --experimental-modules 标志运行永久 js

c++ - 如何存储对函数的引用,以便稍后在 node.js C++ 插件模块中调用它?

node.js - 使用 docker 和 docker compose 访问 typescript 中的 Node 模块