OAuth client authorization handling (Fixes #54)
Change-Id: I3dd3b995af5e53bc8347818727e9733859eb1af6
diff --git a/t/server/mock.pl b/t/server/mock.pl
index d7ec2ff..7deb12a 100644
--- a/t/server/mock.pl
+++ b/t/server/mock.pl
@@ -669,9 +669,31 @@
my $c = shift;
my $type = $c->param('response_type');
my $client_id = $c->param('client_id');
- my $redirect_uri = $c->param('redirect_uri');
+ my $scope = $c->param('scope');
+ my $state = $c->param('state');
+ my $redirect_uri = $c->param('redirect_uri') // 'NO';
- if ($type eq 'code') {
+ if ($type eq 'code' && $client_id eq 'xyz') {
+
+ if ($state eq 'fail') {
+ $c->res->headers->location(
+ Mojo::URL->new($redirect_uri)->query({
+ error_description => 'FAIL'
+ })
+ );
+ $c->res->code(400);
+ return $c->rendered;
+ };
+
+ return $c->redirect_to(
+ Mojo::URL->new($redirect_uri)->query({
+ code => $tokens{auth_token_1},
+ scope => $scope,
+ })
+ );
+ }
+
+ elsif ($type eq 'code') {
return $c->redirect_to(
Mojo::URL->new($redirect_uri)->query({
@@ -812,6 +834,13 @@
return $c->render(text => 'SUCCESS');
};
+get '/fakeclient/return' => sub {
+ my $c = shift;
+ $c->render(
+ text => 'welcome back! [' . $c->param('code') . ']'
+ );
+} => 'return_uri';
+
app->start;