Auth-Yubikey_WebClient
view release on metacpan or search on metacpan
lib/Auth/Yubikey_WebClient.pm view on Meta::CPAN
# Generate nonce unless passed
$self->{nonce} = hmac_sha1_hex(time, rand()) unless $self->{nonce};
# Start generating the parameters
$self->{params} = "id=$self->{id}&nonce=$self->{nonce}&otp=" . uri_escape($self->{otp}) . "×tamp=1";
$self->{params} .= '&h=' . uri_escape(encode_base64(hmac_sha1($self->{params}, decode_base64($self->{api})), ''));
# pass the request to yubico
my $ua = LWP::UserAgent->new(ssl_opts => { verify_hostname => $self->{verify_hostname} });
$ua->env_proxy(); # 4.02
my $req = HTTP::Request->new(GET => $self->{url} . "?$self->{params}");
my $res = $ua->request($req);
if($res->is_success) {
$self->{response} = $res->content;
} else {
print $res->status_line . "\n";
}
chomp($self->{response});
if($self->{response} !~ /status=ok/i) {
# If the status is not ok, let's not even go through the rest...
( run in 0.453 second using v1.01-cache-2.11-cpan-de7293f3b23 )