generateToken static method

String generateToken(
  1. int length, {
  2. int variableLength = 0,
  3. String prefix = '',
  4. Random? random,
})

Implementation

static String generateToken(int length,
    {int variableLength = 0, String prefix = '', Random? random}) {
  random ??= SecureRandom();

  random.advance(maxSteps: 11, random: _advanceRandom);

  var alphabetLength = tokenDefaultAlphabet.length;

  if (variableLength > 0) {
    length += random.nextInt(variableLength);
    random.advance(maxSteps: 5, random: _advanceRandom);
  }

  var halfLength = length ~/ 2;

  var token = StringBuffer();

  while (token.length < halfLength) {
    var p = tokenDefaultAlphabetPairsRandom[random.nextInt(alphabetLength)];
    token.write(p);
  }

  random.advance(maxSteps: 11, random: _advanceRandom);

  while (token.length < length) {
    var p = tokenDefaultAlphabetPairsRandom[random.nextInt(alphabetLength)];
    token.write(p);
  }

  var fullToken = prefix.trim() + token.toString();
  return fullToken;
}