在 URL 参数中传递用户名和密码 (Dart & Flutter)
Posted
技术标签:
【中文标题】在 URL 参数中传递用户名和密码 (Dart & Flutter)【英文标题】:Pass the username and password in URL parameters (Dart & Flutter) 【发布时间】:2021-09-03 03:56:03 【问题描述】:我有一个颤振应用程序,我正在使用 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);
但我有一些错误
【问题讨论】:
【参考方案1】:在将您的个人数据发送到服务器时,请勿使用 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;
【讨论】:
但在 Parse 文档中,他们为登录用户说正确的方法是 GET No @DrBody 对于登录请求,我们应该使用 POST 方法。因为我们的登录数据是安全的,需要安全性。使用 POST 方法时,数据以捆绑的形式发送到服务器。但是在 GET 方法中,数据被发送到服务器,然后是 URL,例如 append with url request,每个人都可以看到。 非常感谢您的帮助我正在使用 POST 方法登录,现在可以使用了。 如果您使用 get,您应该将用户名和密码作为 URL 编码参数传递:【参考方案2】:用于 HTTP 基本身份验证
final loginUrl = Uri(scheme: 'https', host: 'example.com', port: 8080, userInfo: 'username:password')
http.get(loginUrl)
但不建议通过 url 传递用户名和密码,因为它不安全。
https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication#access_using_credentials_in_the_url
所以你应该使用 post formdata 来做到这一点。
【讨论】:
以上是关于在 URL 参数中传递用户名和密码 (Dart & Flutter)的主要内容,如果未能解决你的问题,请参考以下文章