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

时间:2020-01-01 08:40:34

标签: java flutter dart base64

我有基本身份验证的Java代码,我想转换do 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中所做的事情。

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。

1 个答案:

答案 0 :(得分:0)

尝试一下

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