diff options
author | Aaron Parecki <aaron@parecki.com> | 2015-05-10 16:49:22 +0200 |
---|---|---|
committer | Aaron Parecki <aaron@parecki.com> | 2015-05-10 16:49:22 +0200 |
commit | 3b7d766c31314a3d42d651b8c8f643ff8d6e15bd (patch) | |
tree | dec9c9cbed6cb077ada14754f556c21eb51da2c8 /controllers/auth.php | |
parent | 3dc97d7478781550aa1a878120082a871988f02e (diff) |
do the micropub post and redirect after it's created!medium
Diffstat (limited to 'controllers/auth.php')
-rw-r--r-- | controllers/auth.php | 17 |
1 files changed, 14 insertions, 3 deletions
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); } |