From 3b7d766c31314a3d42d651b8c8f643ff8d6e15bd Mon Sep 17 00:00:00 2001 From: Aaron Parecki Date: Sun, 10 May 2015 16:49:22 +0200 Subject: do the micropub post and redirect after it's created! --- controllers/auth.php | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'controllers/auth.php') diff --git a/controllers/auth.php b/controllers/auth.php index a2fa08f..26aa933 100644 --- a/controllers/auth.php +++ b/controllers/auth.php @@ -74,7 +74,7 @@ $app->get('/auth/start', function() use($app) { $req = $app->request(); $params = $req->params(); - + // the "me" parameter is user input, and may be in a couple of different forms: // aaronparecki.com http://aaronparecki.com http://aaronparecki.com/ // Normlize the value now (move this into a function in IndieAuth\Client later) @@ -88,6 +88,10 @@ $app->get('/auth/start', function() use($app) { return; } + if(k($params, 'redirect')) { + $_SESSION['redirect_after_login'] = $params['redirect']; + } + $authorizationEndpoint = IndieAuth\Client::discoverAuthorizationEndpoint($me); $tokenEndpoint = IndieAuth\Client::discoverTokenEndpoint($me); $micropubEndpoint = IndieAuth\Client::discoverMicropubEndpoint($me); @@ -244,7 +248,13 @@ $app->get('/auth/callback', function() use($app) { unset($_SESSION['auth_state']); if($redirectToDashboardImmediately) { - $app->redirect('/new', 301); + if(k($_SESSION, 'redirect_after_login')) { + $dest = $_SESSION['redirect_after_login']; + unset($_SESSION['redirect_after_login']); + $app->redirect($dest, 301); + } else { + $app->redirect('/new', 301); + } } else { $html = render('auth_callback', array( 'title' => 'Sign In', @@ -254,7 +264,8 @@ $app->get('/auth/callback', function() use($app) { 'tokenEndpoint' => $tokenEndpoint, 'auth' => $token['auth'], 'response' => $token['response'], - 'curl_error' => (array_key_exists('error', $token) ? $token['error'] : false) + 'curl_error' => (array_key_exists('error', $token) ? $token['error'] : false), + 'destination' => (k($_SESSION, 'redirect_after_login') ?: '/new') )); $app->response()->body($html); } -- cgit v1.2.3