use strict; use warnings; use Plack::Middleware; use Plack::Middleware::OAuth; use Plack::Middleware::OAuth::Dev; builder { enable 'OAuth', on_success => => sub { my ($self,$token) = @_; my $userinfo = Plack::Middleware::OAuth::UserInfo->new( config => $self->config , token => $token ); if( $token->is_provider('Dev') ) { my $info = $userinfo->ask( $token->provider ); return $self->to_yaml( $info ); } return $self->render( 'Error' ); }, providers => { 'Dev' => { client_id => 'xxxxxxxxxxxxxxxxxxxxx', state => '', client_secret => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' }, }; mount '/' => webapp->to_app; }; #### package Plack::Middleware::OAuth::Dev; use warnings; use strict; sub config { + { version => 2, authorize_url => 'https://dev.oktapreview.com/oauth2/v1/authorize', access_token_url => 'https://dev.oktapreview.com/oauth2/v1/token', response_type => 'code', grant_type => 'authorization_code', scope => 'openid', } } 1;