generateJwt static method

String generateJwt({
  1. Map<String, dynamic>? customPayload,
  2. String algorithm = 'HS256',
})

Generate a random JWT.

Implementation

static String generateJwt({
  Map<String, dynamic>? customPayload,
  String algorithm = 'HS256',
}) {
  // Generate the header
  final header = {
    'alg': algorithm,
    'typ': 'JWT',
  };

  // Generate the payload
  final payload = customPayload ??
      {
        'sub': _randomString(10),
        'name': 'User ${_random.nextInt(1000)}',
        'iat': DateTime.now().millisecondsSinceEpoch ~/ 1000,
        'exp': DateTime.now()
                .add(const Duration(days: 1))
                .millisecondsSinceEpoch ~/
            1000,
      };

  // Encode header and payload
  final encodedHeader = _base64UrlEncode(jsonEncode(header));
  final encodedPayload = _base64UrlEncode(jsonEncode(payload));

  // Generate a dummy signature (you can replace this with a real one if needed)
  final signature = _base64UrlEncode(_randomString(20));

  // Combine all parts to form a JWT
  return '$encodedHeader.$encodedPayload.$signature';
}