checkToken method

Map<String, dynamic> checkToken()

Implementation

Map<String, dynamic> checkToken() {
  Map<String, dynamic>? data = loadFile();
  if (data?['gpt_key'] == null ||
      data?['gpt_key'] == '' ||
      data?['secret_key'] == '' ||
      data?['secret_key'] == null) {
    print('No API Key found, please add your API Key using --adg flag');
    return {};
  } else {
    try {
      String token = data!['gpt_key']!;
      String secretKey = data['secret_key']!;
      final jwt = JWT.verify(token, SecretKey(secretKey));

      Map<String, dynamic> refreshData = jwt.payload;
      String secret =
          secretKeyMaker(refreshData['createdAt']).substring(0, 16);
      final iv = IV.fromUtf8(secret);
      final decrypter = Encrypter(
          AES(Key.fromUtf8(secret), mode: AESMode.ctr, padding: null));
      final decrypted = decrypter
          .decrypt(Encrypted.fromBase64(refreshData['apiKey']), iv: iv);

      return {
        "status": true,
        "apiKey": decrypted,
      };
    } catch (e) {
      print('Error: $e');
      return {"status": false};
    }
  }
}