use strict; use warnings; use Plack::Middleware; use Plack::Middleware::OAuth; use Plack::Middleware::OAuth::dev; use URI; use LWP::UserAgent; use Plack::Builder; use Plack::Middleware; use Authen::Simple::ActiveDirectory; use Log::Log4perl; 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 => 'xxxxxxxxxxxxxxxxxxx', client_secret => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' }, }; 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', redirect_uri => 'https://testchandan.com:5001', grant_type => 'authorization_code', scope => 'openid', state => '1234', } } 1;