簡體   English   中英

如何在 Flutter 和 Prestashop 中登錄

[英]How to make login in Flutter and Prestashop

我在我的顫振項目中使用 Prestashop Web 服務,我可以獲取和發布數據並注冊客戶,但我在登錄時遇到了問題。 Prestashop 中的登錄名需要散列密碼以進行驗證。 我嘗試了許多用於散列的軟件包,例如crypto package ,但沒有任何效果。 這是我的代碼。

// 獲取用戶信息函數獲取密碼

Future<List<Info>> getUserInfo(String email) async {
var url =
    'https://www.example.com/api/customers?filter[email]=$email&display=[id,lastname,firstname,passwd]';

List<Info> data = new List();
Response response;

response = await get(url, headers: <String, String>{
  'authorization': getAuth(),
});

if (response.statusCode == 200) {
  if (response.body.length != 0) {
    var raw = XmlDocument.parse(response.body);
    var elements = raw.findAllElements("customer");

    data.addAll(elements.map((element) {
      return Info(
        customerID: removeAllHtmlTags(
            element.findElements('id').single.text.toString()),
        firstName: removeAllHtmlTags(
            element.findElements('lastname').single.text.toString()),
        lastName: removeAllHtmlTags(
            element.findElements('firstname').single.text.toString()),
        password: removeAllHtmlTags(
            element.findElements('passwd').single.text.toString()),
      );
    }).toList());
  } else {
    data = null;
  }
}
return data;}

////驗證登錄

 Future<String> VerifyLogin({String password, String email}) async {
String result = '';
List<Info> data = await getUserInfo(email);
const cookie_key = '$cookie_key';

final cryptPass = crypto.md5
    .convert(utf8.encode(cookie_key + password))
    .toString()
    .toLowerCase();

if (data != null) {
  print(cryptPass);
  print(data.first.password);
  if (data.first.password == cryptPass) {
    final SharedPreferences prefs = await _prefs;
    prefs.setString('id', data.first.customerID);

    result = 'success';
  } else {
    result = 'wrong password';
  }
} else {
  result = 'wrong email';
}
return result;}

在 Prestashop 1.7 中使用 bcrypt。

看到這個答案,它完美地解釋了 Prestashop 如何處理密碼加密/散列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM