Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何生成访问令牌表单flatter并将其发送到节点服务器?_Node.js_Flutter_Oauth - Fatal编程技术网

Node.js 如何生成访问令牌表单flatter并将其发送到节点服务器?

Node.js 如何生成访问令牌表单flatter并将其发送到节点服务器?,node.js,flutter,oauth,Node.js,Flutter,Oauth,我在Node.JS上编写了一个OAuth服务器,这些服务器接受access_令牌作为请求,然后它生成JWT,这个JWT用于从服务器解锁资源。下面是我的Node.JS代码以及自述文件中的说明。链接: 需要从flatter生成访问令牌 将访问令牌发送到节点路由 方法1: 您可以将用户登录到您的应用程序中,该应用程序将调用在NodeJS服务器上编写的登录API。在该API中,您可以生成令牌并在该登录服务的响应中返回该令牌 在flatter中,您可以将返回的令牌保存在共享首选项中,然后在每个服务中使用保

我在Node.JS上编写了一个OAuth服务器,这些服务器接受access_令牌作为请求,然后它生成JWT,这个JWT用于从服务器解锁资源。下面是我的Node.JS代码以及自述文件中的说明。链接:

  • 需要从flatter生成访问令牌
  • 将访问令牌发送到节点路由

  • 方法1:

    您可以将用户登录到您的应用程序中,该应用程序将调用在NodeJS服务器上编写的登录API。在该API中,您可以生成令牌并在该登录服务的响应中返回该令牌

    在flatter中,您可以将返回的令牌保存在共享首选项中,然后在每个服务中使用保存的令牌,直到该令牌过期或用户注销

    示例代码:

    Future<String> Login(email, password) async {
    
        final url = "API_URL";
        var result = null;
        final prefs = await SharedPreferences.getInstance();
        var request = { "email": email, "password": password };
        var body = json.encode(request);
        var headers = {
          'Content-type': 'application/json',
          'Accept': 'application/json',
        };
    
        await http.post(url, body: body, headers: headers).then((response) {
          print("Response body: ${response.body}");
          if(response.statusCode == 200){
            var json = jsonDecode(response.body);
            prefs.setString('token', json['token']);
            result = response.body;
          }
          else{
            var json = jsonDecode(response.body);
            print(json['error']['message']);
            result = json['error']['message'];
          }
        });
        return result;
    }
    
    未来登录(电子邮件、密码)异步{
    最终url=“API_url”;
    var结果=null;
    final prefs=wait SharedPreferences.getInstance();
    var请求={“email”:email,“password”:password};
    var body=json.encode(请求);
    变量头={
    “内容类型”:“应用程序/json”,
    “接受”:“应用程序/json”,
    };
    等待http.post(url,body:body,headers:headers){
    打印(“响应正文:${Response.body}”);
    如果(response.statusCode==200){
    var json=jsonDecode(response.body);
    prefs.setString('token',json['token']);
    结果=response.body;
    }
    否则{
    var json=jsonDecode(response.body);
    打印(json['error']['message']);
    结果=json['error']['message'];
    }
    });
    返回结果;
    }
    
    方法2:

    您可以使用包在flatter中生成令牌。这可以帮助你理解和完成你的工作


    谢谢。

    您检查了下面的答案吗?我想从前端OAuth生成访问令牌,然后将其发送到后端。我如何从JWT中生成访问令牌?JWT已经由我的后端处理,因此无需担心。我只需要将访问令牌传递给路由,该路由为用户生成一个JWT。这是JWT上的,而不是OAuth访问令牌,这是链接,请看一看,点击授权API并选择Google OAuth2 API v2,然后你应该看到你的OAuth重定向屏幕,然后你应该找到身份验证代码并将代码与access\u令牌和刷新令牌交换,这里我需要生成access\u令牌,该令牌是JWT令牌?