auth0 の JWT のverifyをPerl(Mojolicious)でする方法
こちらでverifyのデバッグできるので参考にしつつ。
https://jwt.io/
Mojo::JWTというモジュールを使ってやります。
secretもbase64urlデコードする必要があるというところで
はまりました。
package StampMaker::Service; use Mojo::Base 'MojoX::JSON::RPC::Service'; use Data::Dumper; use Mojo::JWT; use Mojo::JSON qw/encode_json decode_json/; use MIME::Base64 qw/encode_base64url decode_base64url/; my @METHODS = qw/ save load /; sub new { my $class = shift; my $self = $class->SUPER::new(@_); for(@METHODS){ $self->register( $_ => \&{$_}, { with_self => 1. } ); } return $self; } sub save { my ($app, $param) = @_; my $authorization = $app->req->headers->header("authorization"); my ($str) = (split / /, $authorization)[1]; my $base64_encoded_secret = 'your_secret'; my $secret = decode_base64url($base64_encoded_secret); my $jwt = Mojo::JWT->new( secret => $secret); eval{ my $decode = $jwt->decode($str); print Dumper($decode); }; if ($@){ warn($@); } return "ok"; } 1;