diff options
| author | Aaron Parecki <aaron@parecki.com> | 2016-12-17 14:58:36 -0800 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-12-17 14:58:36 -0800 | 
| commit | 7d1a655fdc96543b8bfaa15e2be2eb83ffa4b91f (patch) | |
| tree | c47804ea84a6b1aebee51c8850d0cece7a61f7ed /controllers/auth.php | |
| parent | 22630f4af335f671ad082dd035759c9ff44b23fc (diff) | |
| parent | 19a1628b5a270495967ad9ee942a9b536b70299e (diff) | |
Merge pull request #53 from cweiske/dontask
Support full automatic no-questions-asked login
Diffstat (limited to 'controllers/auth.php')
| -rw-r--r-- | controllers/auth.php | 26 | 
1 files changed, 20 insertions, 6 deletions
diff --git a/controllers/auth.php b/controllers/auth.php index f4ea73a..6af9ac4 100644 --- a/controllers/auth.php +++ b/controllers/auth.php @@ -1,12 +1,15 @@  <?php -function buildRedirectURI() { -  return Config::$base_url . 'auth/callback'; +function buildRedirectURI($params = array()) { +  return Config::$base_url . 'auth/callback?' . http_build_query($params);  }  $app->get('/', function($format='html') use($app) {    $res = $app->response(); - +  $params = $app->request()->params(); +  if (k($params, 'me')) { +    $app->redirect('/auth/start?'.http_build_query($params), 302); +  }    ob_start();    render('index', array( @@ -49,7 +52,10 @@ $app->get('/auth/start', function() use($app) {      $_SESSION['auth_state'] = $state;      $scope = 'post'; -    $authorizationURL = IndieAuth\Client::buildAuthorizationURL($authorizationEndpoint, $me, buildRedirectURI(), Config::$base_url, $state, $scope); +    $cleanparams = $params; +    unset($cleanparams['me']); +    unset($cleanparams['redirect']); +    $authorizationURL = IndieAuth\Client::buildAuthorizationURL($authorizationEndpoint, $me, buildRedirectURI($cleanparams), Config::$base_url, $state, $scope);    } else {      $authorizationURL = false;    } @@ -86,6 +92,10 @@ $app->get('/auth/start', function() use($app) {      $user->micropub_access_token = ''; // blank out the access token if they attempt to sign in again      $user->save(); +    if (k($params, 'dontask') && $params['dontask']) { +        $app->redirect($authorizationURL, 302); +    } +      $html = render('auth_start', array(        'title' => 'Sign In',        'me' => $me, @@ -206,13 +216,17 @@ $app->get('/auth/callback', function() use($app) {    unset($_SESSION['auth_state']); -  if($redirectToDashboardImmediately) { +  if($redirectToDashboardImmediately || k($params, 'dontask')) {      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); +      $cleanparams = $params; +      unset($cleanparams['code']); +      unset($cleanparams['me']); +      unset($cleanparams['state']); +      $app->redirect('/new?' . http_build_query($cleanparams), 301);      }    } else {      $html = render('auth_callback', array(  | 
