Skip to content
This repository has been archived by the owner on Jan 6, 2023. It is now read-only.

Commit

Permalink
Add redirect_url param
Browse files Browse the repository at this point in the history
  • Loading branch information
binal-7span committed Nov 12, 2019
1 parent 3ba3708 commit 9816a4a
Showing 1 changed file with 7 additions and 13 deletions.
20 changes: 7 additions & 13 deletions src/endpoints/Auth.php
Original file line number Diff line number Diff line change
Expand Up @@ -326,12 +326,14 @@ public function ssoService(Request $request, Response $response)
$responseData = $authService->getAuthenticationRequestInfo(
$request->getAttribute('service')
);
$session->set('mode', $request->getParam('mode'));
$session->set('redirect_url', $request->getParam('redirect_url'));
if (\Directus\cors_is_origin_allowed($allowedOrigins, $origin)) {
if (is_array($origin)) {
$origin = array_shift($origin);
}
$session->set('sso_origin_url', $origin);
$session->set('mode', $request->getParam('mode'));

$response = $response->withRedirect(array_get($responseData, 'data.authorization_url'));
}

Expand Down Expand Up @@ -372,12 +374,7 @@ public function ssoServiceCallback(Request $request, Response $response)

$session = $this->container->get('session');
$mode = $session->get('mode');

$redirectUrl = $mode == DirectusUserSessionsTableGateway::TOKEN_COOKIE
? get_directus_path() . '/admin/#/'
: $session->get('sso_origin_url');

$needs2FA = false;
$redirectUrl = $session->get('redirect_url') ? $session->get('redirect_url') : $session->get('sso_origin_url');
$responseData = [];
$urlParams = [];

Expand Down Expand Up @@ -427,18 +424,15 @@ public function ssoServiceCallback(Request $request, Response $response)
$urlParams = array_merge($redirectQueryParams, $urlParams);
}

if (!empty($urlParams) && $mode == DirectusUserSessionsTableGateway::TOKEN_COOKIE) {
$redirectUrl .= 'login?' . http_build_query($urlParams);
} else {
$redirectUrl .= '?' . http_build_query($urlParams);
}
$urlToRedirect = !empty($urlParams) ? $redirectUrl . '?' . http_build_query($urlParams) : $redirectUrl;
$response = $response->withRedirect($urlToRedirect);

$response = $response->withRedirect($redirectUrl);
}else{
$response = $response->withRedirect($redirectUrl);
}

$session->remove('mode');
$session->remove('redirect_url');
return $this->responseWithData($request, $response, $responseData);
}

Expand Down

0 comments on commit 9816a4a

Please sign in to comment.