diff --git a/oauth_common.pages.inc b/oauth_common.pages.inc index 3122f49..84069ce 100644 --- a/oauth_common.pages.inc +++ b/oauth_common.pages.inc @@ -143,6 +143,13 @@ function oauth_common_form_authorize() { '#value' => $token, ); + if (!empty($callback) && valid_url($callback, TRUE)) { + $form['callback'] = array( + '#type' => 'value', + '#value' => $callback + ); + } + $message = !empty($auth_ops['message']) ? $auth_ops['message'] : 'The application @appname wants to access @sitename on your behalf, check the permissions that you would like the application to have.'; $form['message'] = array( @@ -290,9 +297,10 @@ function oauth_common_form_authorize_submit(&$form, &$form_state) { $token->write(TRUE); - 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(); if (!empty($callback['query'])) { parse_str($callback['query'], $query);