将基本身份验证从 java 转换为 dart

Convert basic auth from java to dart

我有 java 基本身份验证代码,我想转换为 dart。这是java代码

JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("user_id", (Number) userId);
jsonObject.addProperty("access_token", userToken);
try {
  String encodeToString = Base64.encodeToString(jsonObject.toString().getBytes(Key.STRING_CHARSET_NAME), 2);
  StringBuilder sb = new StringBuilder();
  sb.append("Basic ");
  sb.append(encodeToString);
} catch (UnsupportedEncodingException e) {
  e.printStackTrace();
}

我做了 flutter 但我没有得到相同的结果。这是我在 flutter.

中的做法
String basicAuth = 'Basic ' + base64Encode(utf8.encode('${box1.get('user_id')}:${box1.get('user_token')}')); 

我认为 java 中的 JsonObject 有问题。或者这部分可能让我感到困惑。

Base64.encodeToString(jsonObject.toString().getBytes(Key.STRING_CHARSET_NAME), 2);

在我的代码中,${box1.get('user_id')} and ${box1.get('user_token')} 都是字符串,我的意思是我没有得到 json。

试试这个

  String credentials = userId + ":" + access_token;
  Codec<String, String> strToBase64 = utf8.fuse(base64);
  String authEncoded = strToBase64.encode(credentials);
  String basicAuth = = 'Basic ' + authEncoded;