首页 > 解决方案 > 在 URL 参数中传递用户名和密码 (Dart & Flutter)

问题描述

我有一个颤动的应用程序,我正在使用 back4app.com 和 Parse RESTful api 来注册我的用户,我已经阅读了他们关于登录用户的文档,但我不知道如何在 URL 参数中将我的用户名和密码作为 JSON 编码传递:

我试过这个方法:

Future <void>loginMethod(String username,String password) async {

var url = Uri.parse('https://myshoppingapp.b4a.io/login/$username:$password');


final response = await  http.get(url,  headers: {
          'X-Parse-Application-Id': kParseApplicationId,
          'X-Parse-REST-API-Key': kParseRestApiKey,
          'Content-Type': 'application/json'
          
          
          },);


final exData = jsonDecode(response.body);

print(exData);

但我有一些错误

标签: jsonflutterdartparse-platformback4app

解决方案


将您的个人数据发送到服务器时, 请勿使用GET方法。GET方法数据将数据发送到服务器,然后是URL,如附加 URL 请求,每个人都可以看到,如下所示。

var url = Uri.parse('https://myshoppingapp.b4a.io/login/$username:$password');

这就是从GET方法中的 URL 读取您的个人数据的方式。

'https://myshoppingapp.b4a.io/login/Mehran@metra.org:abcd12345'

对于登录请求,我们应该使用POST方法。因为我们的登录数据是安全的,需要安全性。使用POST方法时,数据以捆绑的形式发送到服务器。

 Future loginMethod(String username,String password) async {
       var res = await http.post(Uri.parse('https://myshoppingapp.b4a.io/login/'),
            body: {"username": username, "password": password});
        print('res : ${res.body}');
       
        
if (res.statusCode == 200){ final exData = jsonDecode(res.body);
    
    print(exData);
return res.body;
} else{
final exData = jsonDecode(res.body);
    
    print(exData);
return res.statusCode;
}
        
   }

推荐阅读