WWW-Suffit
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
lib/WWW/Suffit/JWT.pm view on Meta::CPAN
secret => "MySecret",
payload => {foo => 'bar'},
);
my $token = $jwt->encode->token or die $jwt->error;
my $payload = $jwt->decode($token)->payload;
die $jwt->error if $jwt->error;
use WWW::Suffit::RSA;
my $rsa = WWW::Suffit::RSA->new(key_size => 1024);
$rsa->keygen;
my $private_key = $rsa->private_key;
my $public_key = $rsa->public_key;
my $jwt = WWW::Suffit::JWT->new(
private_key => $private_key,
payload => {foo => 'bar'},
algorithm => 'RS512',
);
my $token = $jwt->encode->token or die $jwt->error;
my $payload = $jwt->public_key($public_key)->decode($token)->payload;
die $jwt->error if $jwt->error;
=head1 DESCRIPTION
JSON Web Token for Suffit authorization
lib/WWW/Suffit/RSA.pm view on Meta::CPAN
WWW::Suffit::RSA - The RSA encryption and signing subclass
=head1 SYNOPSIS
use WWW::Suffit::RSA;
my $rsa = WWW::Suffit::RSA->new;
$rsa->keygen(2048);
my $private_key = $rsa->private_key;
my $public_key = $rsa->public_key;
my $b64_cipher_text = $rsa->encrypt("test");
my $plain_text = $rsa->decrypt($b64_cipher_text);
my $signature = $rsa->sign("Text", 256) or die $rsa->error;
$rsa->verify("Text", $signature, 256) or die $rsa->error || "Incorrect signature";
=head1 DESCRIPTION
# Empty hmac key
$jwt = WWW::Suffit::JWT->new(secret => "");
$decoded_payload = $jwt->decode($token)->payload;
like $jwt->error, qr/Symmetric\skey\s\(secret\)\snot\sspecified$/,
"Decodes JWTs (HMAC) with empty hmac secret" or diag $jwt->error;
}
# Generate RSA keys
my $rsa = WWW::Suffit::RSA->new(key_size => 512);
$rsa->keygen;
my $private_key = $rsa->private_key;
my $public_key = $rsa->public_key;
ok(length $private_key // '', 'Private RSA key');
ok(length $public_key // '', 'Public RSA key');
# RSA
{
my $payload = {
foo => 'bar',
baz => 'qux',
};
my $jwt = WWW::Suffit::JWT->new(
private_key => $private_key,
public_key => $public_key,
payload => $payload,
algorithm => 'RS256',
);
# Encode token
my $token = $jwt->encode->token;
ok $token, 'Encodes JWTs (RSA)' or diag $jwt->error;
#note $token;
#note explain $jwt;
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.804 second using v1.00-cache-2.02-grep-82fe00e-cpan-2cc899e4a130 )