Вы не можете ничего добавить к URI перенаправления, URI перенаправления является постоянным, как установлено в настройках приложения Oauth.Например: http://www.example.com/redirect.html
Чтобы передать несколько параметров в ваш URI перенаправления, сохраните их в параметре state
перед вызовом Oauth url, URL после авторизации отправит те же параметры в ваш URI перенаправления, что иstate=THE_STATE_PARAMETERS
Итак, для вашего случая сделайте следующее:
/ 1.создайте строку параметров json ->
{ "a" : "b" , "c" : 1 }
/ 2.сделать base64UrlEncode, чтобы сделать его URL безопасным ->
stateString = base64UrlEncode('{ "a" : "b" , "c" : 1 }');
Это пример PHP base64UrlEncoding & decoding (http://en.wikipedia.org/wiki/Base64#URL_applications):
function base64UrlEncode($inputStr)
{
return strtr(base64_encode($inputStr), '+/=', '-_,');
}
function base64UrlDecode($inputStr)
{
return base64_decode(strtr($inputStr, '-_,', '+/='));
}
Так что теперь состояние будетбыть что-то вроде: stateString -> asawerwerwfgsg,
Передать это состояние в URL авторизации OAuth:
https://accounts.google.com/o/oauth2/auth?
client_id=21302922996.apps.googleusercontent.com&
redirect_uri=https://www.example.com/back&
scope=https://www.google.com/m8/feeds/&
response_type=token&
state=asdafwswdwefwsdg,
Для потока на стороне сервера оно будет сопровождаться токеном: http://www.example.com/redirect.html?token=sdfwerwqerqwer&state=asdafwswdwefwsdg,
Для потока на стороне клиента он будет добавлен в хеш вместе с токеном доступа: http://www.example.com/redirect.html#access_token=portyefghsdfgdfgsdgd&state=asdafwswdwefwsdg,
Получите состояние, base64UrlДекодируйте его, json_decode, и у вас есть ваши данные.
Подробнеео Google OAuth 2 здесь:
http://code.google.com/apis/accounts/docs/OAuth2.html