diff --git a/oauth_common.pages.inc b/oauth_common.pages.inc index 7ffee8d..b48d2b7 100644 --- a/oauth_common.pages.inc +++ b/oauth_common.pages.inc @@ -142,2 +142,9 @@ function oauth_common_form_authorize() { + if (!empty($callback) && valid_url($callback, TRUE)) { + $form['callback'] = array( + '#type' => 'value', + '#value' => $callback + ); + } + $message = !empty($context->authorization_options['message']) ? $context->authorization_options['message'] : @@ -284,5 +291,7 @@ function oauth_common_form_authorize_submit(&$form, &$form_state) { - if (!empty($consumer->callback_url) && $consumer->callback_url !== 'oob') { + $callback = isset($form_state['values']['callback']) ? $form_state['values']['callback'] : $consumer->callback_url; + + if (!empty($callback) && $callback !== 'oob') { // Pick the callback url apart and add the token parameter - $callback = parse_url($consumer->callback_url); + $callback = parse_url($callback); $query = array();