package Plack::Middleware::Auth::JWT;
# ABSTRACT: Token-based Auth (aka Bearer Token) using JSON Web Tokens (JWT)
our $VERSION = '0.907'; # VERSION
use 5.010;
use strict;
use warnings;
use parent qw
_name token_query_name _env);
use Plack::Request;
use Crypt::JWT 0.020 qw(decode_jwt);
use JSON qw(encode_json);
sub prepare_app {
my $self = shift;
# some defaults
$self->psgix_claims('
nv->{HTTP_ACCEPT} =~ m{application/json}i ) {
my $ident = $body =~/exp claim check failed/ ? 'token_expired' : 'token_invalid';
my $data = encode_json({
ident=>$ident,