checkToken function

Future<Map<String, dynamic>?> checkToken(
  1. String token
)

Implementation

Future<Map<String, dynamic>?> checkToken(String token) async {
  var comps = token.split(".");

  if (comps.length != 3) {
    throw Exception("Token format unknown");
  }

  try {
    var mes = "${comps[0]}.${comps[1]}";
    var mac = comps[2];
    var hm = Hmac.sha512();

    var secret =
    SecretBox(utf8.encode(mes), nonce: [], mac: Mac(base64Url.decode(mac)));
    await secret.checkMac(
        macAlgorithm: hm,
        secretKey: SecretKey(utf8.encode("11118111111155111511111191111112")),
        aad: []);

    var p = json.decode(utf8.decode(base64Url.decode(comps[1])));

    return p;
  } on Exception catch (e) {
    stdout.write(e);
    return null;
  }
}