NAME
Vigil::Token - Cryptographically secure, URL-safe token generator for OTPs, sessions, and custom codes.
SYNOPSIS
EXAMPLE 1.
#!/user/bin/perl
use Vigil::Token;
my $token = Vigil::Token->new;
my $session_token = $token->custom_token(256);
my $short_token = $token->custom_token(12);
my $some_token = $token->(16); #An alias for $token->custom_token(16);
my $digits_be_6_for_otp = $token->otp(6);
DESCRIPTION
Vigil::Token is a sleek, high-octane token generator that effortlessly handles both human-friendly codes and machine-to-machine secrets. Need a short, 6-digit OTP that users can type without mistaking a 0 for an O? Done. Looking for a massive, 256-character session token to lock down API calls or web sessions? Done. Every token is backed by cryptographically strong randomness using Bytes::Random::Secure, ensuring each byte of entropy is truly unpredictable. All strings are automatically URL-safe via Base64URL encoding, so they slide seamlessly into cookies, query strings, or HTML forms without worrying about escaping. With its flexible custom_token() function, Vigil::Token balances readability and security perfectly: short codes are human-friendly, long codes maximize entropy, and all tokens are guaranteed to be the exact length you request. Lightweight, reliable, and unrelentingly secure, Vigil::Token is the ultimate Swiss Army knife for modern web authentication and cryptographic token needs.
OBJECT METHODS
- my $one_time_password = $obj->otp( LENGTH )
-
Returns a string of digits only. Will return up to 12 digits as specified by LENGTH.
- $obj->custom_token( LENGTH );
-
Returns a string that is automatically URL-safe via Base64URL encoding. The number of characters in the string is determined by LENGTH.
Local Installation
If your host does not allow you to install from CPAN, then you can install this module locally two ways:
Same Directory
In the same directory as your script, create a subdirectory called "Vigil". Then add these two lines, in this order, to your script:
use lib '.'; # Add current directory to @INC use Vigil::Token; # Now Perl can find the module in the same dir #Then call it as normal: my $token = Vigil::Token->new;
In a different directory
First, create a subdirectory called "Vigil" then add it to
@INC
array through aBEGIN{}
block in your script:#!/usr/bin/perl BEGIN { push(@INC, '/path/on/server/to/Vigil'); } use Vigil::Token; #Then call it as normal: my $token = Vigil::Token->new;
AUTHOR
Jim Melanson (jmelanson1965@gmail.com).
Created: July, 2017.
Last Update: August 2025.
LICENSE
This module is free software; you may redistribute it and/or modify it under the same terms as Perl itself.