Re: [dancer-users] REST plugin
On Tue, Oct 13, 2015 at 7:00 AM, <dancer-users-request@dancer.pm> wrote:
I see Dancer2::Plugin::REST, is that the recommended one? It looks good? any experiences with it?
My code serves REST without the use of that plugin. It was good, but it did not seem to help me much. I have been writing a simple decorator plugin to help with JWT JSON Web Tokens. So my route can look like this: check_auth ['post', 'put'] => '/cr_user' => sub { my ($jwt_sub) = @_; my $dir = _connect_dir(); my $role_valid ; my $ret; if( $jwt_sub) { my $admin_user = $dir->get_user({ username => $jwt_sub }); The plugin has this: use Crypt::JWT qw(encode_jwt decode_jwt); ... register 'check_auth' => sub { my ( $dsl, $pattern, @rest ) = @_; my $default_methods = [ 'get', 'post' ]; # If the given pattern is an ArrayRef, we override the defaults # and pass these onto to DSL->any() if( ref($pattern) eq "ARRAY" ) { $default_methods = $pattern; $pattern = shift(@rest); } my $code; for my $e (@rest) { $code = $e if ( ref($e) eq 'CODE' ) } my $content_type = plugin_setting->{content_type} || 'text/xml'; my $authenticated_route = sub { # Default response content type $dsl->response->header('Content-Type') or $dsl->response->content_type( $content_type ); # must be authenticated # get token from header my $jwt_sub; my $token = $dsl->request->header('authorization'); if ( $token) { # check the JWT of this request my $secret = plugin_setting->{'jwt_secret'}; try{ my $data = decode_jwt(token=>$token, key=>$secret); Much of this is copied from Dancer2::Plugin::Auth::Tiny by D.A. Golden. Now I should try Yanick's Plugin2. Cheers -- Rick
participants (1)
-
Rick Leir