public function processInput($postData)
 {
     if (isset($postData['redirectAuth'])) {
         $authMethods = Kwf_Registry::get('userModel')->getAuthMethods();
         if (!isset($authMethods[$postData['redirectAuth']])) {
             throw new Kwf_Exception_NotFound();
         }
         $auth = $authMethods[$postData['redirectAuth']];
         if (!$auth instanceof Kwf_User_Auth_Interface_Redirect) {
             throw new Kwf_Exception_NotFound();
         }
         $formValues = array();
         foreach ($auth->getLoginRedirectFormOptions() as $option) {
             if ($option['type'] == 'select') {
                 $formValues[$option['name']] = $postData[$option['name']];
             }
         }
         $redirectBackUrl = Kwf_Setup::getBaseUrl() . '/';
         $f = new Kwf_Filter_StrongRandom();
         $state = 'activate-' . $postData['redirectAuth'] . '-' . $f->filter(null) . '-' . $postData['code'] . '-' . $redirectBackUrl;
         //save state in namespace to validate it later
         $ns = new Kwf_Session_Namespace('kwf-login-redirect');
         $ns->state = $state;
         $url = $auth->getLoginRedirectUrl($this->_getRedirectBackUrl(), $state, $formValues);
         header("Location: " . $url);
         exit;
     }
 }
 public function preProcessInput($postData)
 {
     if (isset($postData['redirectAuth'])) {
         $authMethods = Kwf_Registry::get('userModel')->getAuthMethods();
         if (!isset($authMethods[$postData['redirectAuth']])) {
             throw new Kwf_Exception_NotFound();
         }
         $auth = $authMethods[$postData['redirectAuth']];
         if (!$auth instanceof Kwf_User_Auth_Interface_Redirect) {
             throw new Kwf_Exception_NotFound();
         }
         $redirectBackUrl = $_GET['redirect'];
         $formValues = array();
         foreach ($auth->getLoginRedirectFormOptions() as $option) {
             if ($option['type'] == 'select') {
                 $formValues[$option['name']] = $postData[$option['name']];
             }
         }
         $f = new Kwf_Filter_StrongRandom();
         $state = 'login.' . $postData['redirectAuth'] . '.' . $f->filter(null) . '.' . $redirectBackUrl;
         //save state in namespace to validate it later
         $ns = new Kwf_Session_Namespace('kwf-login-redirect');
         $ns->state = $state;
         $url = $auth->getLoginRedirectUrl($this->_getRedirectBackUrl(), $state, $formValues);
         if ($url) {
             header("Location: " . $url);
             exit;
         } else {
             echo $auth->getLoginRedirectHtml($this->_getRedirectBackUrl(), $state, $formValues);
             exit;
         }
     }
     if ($postData != array() && array_keys($postData) != array('redirect')) {
         $user = null;
         foreach (Kwf_Registry::get('userModel')->getAuthMethods() as $auth) {
             if ($auth instanceof Kwf_User_Auth_Interface_Redirect) {
                 $user = $auth->getUserToLoginByParams($postData);
                 if ($user) {
                     break;
                 }
             }
         }
         if ($user) {
             Kwf_Registry::get('userModel')->loginUserRow($user, true);
             $url = $this->_getUrlForRedirect($postData, $user);
             Kwf_Util_Redirect::redirect($url);
         }
     }
 }
 public function redirectAction()
 {
     $authMethod = $this->_getParam('authMethod');
     $users = Zend_Registry::get('userModel');
     $authMethods = $users->getAuthMethods();
     if (!isset($authMethods[$authMethod])) {
         throw new Kwf_Exception_NotFound();
     }
     $f = new Kwf_Filter_StrongRandom();
     $state = 'login.' . $authMethod . '.' . $f->filter(null) . '.' . $this->_getParam('redirect');
     //save state in namespace to validate it later
     $ns = new Kwf_Session_Namespace('kwf-login-redirect');
     $ns->state = $state;
     $formValues = array();
     foreach ($authMethods[$authMethod]->getLoginRedirectFormOptions() as $option) {
         if ($option['type'] == 'select') {
             $formValues[$option['name']] = $this->_getParam($option['name']);
         }
     }
     $url = $authMethods[$authMethod]->getLoginRedirectUrl($this->_getRedirectBackUrl(), $state, $formValues);
     $this->redirect($url);
 }