Как добавить параметры в google oauth2 redirect_uri?
Просто вот так redirect_uri=http://www.example.com/redirect.html?a=b
.
b
Из a=b
является случайным.
Кто-нибудь может помочь?
источник
Как добавить параметры в google oauth2 redirect_uri?
Просто вот так redirect_uri=http://www.example.com/redirect.html?a=b
.
b
Из a=b
является случайным.
Кто-нибудь может помочь?
Вы не можете ничего добавить к uri перенаправления, uri перенаправления является постоянным, как установлено в настройках приложения Oauth. например: http://www.example.com/redirect.html
Чтобы передать несколько параметров вашему uri перенаправления, сохраните их в state
параметре перед вызовом URL-адреса Oauth, URL-адрес после авторизации отправит те же параметры в ваш URI перенаправления, что и
state=THE_STATE_PARAMETERS
Итак, для вашего случая сделайте следующее:
/ 1. создайте строку json ваших параметров ->
{ "a" : "b" , "c" : 1 }
/ 2. сделайте base64UrlEncode, чтобы сделать его безопасным для URL ->
stateString = base64UrlEncode('{ "a" : "b" , "c" : 1 }');
Это PHP-пример кодирования и декодирования base64UrlEncoding ( 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 ,
Получите состояние, base64UrlDecode его, json_decode его, и у вас есть данные.
Подробнее о Google OAuth 2 можно узнать здесь:
state
param для передачи нескольких параметров для перенаправления uri и предотвращенияCSRF
атаки одновременно ?CSRF
атак)?Если вы находитесь в .NET, вы можете сохранить параметры в сеансе
и перенаправить на страницу авторизации без параметров
источник
Session
следует избегать хранения любого состояния клиента .Вы можете перенаправить параметр с URL-адресом, как показано ниже,
Когда вы получаете ответ от Google, вы можете передать параметр с URL-адресом,
См. Ниже php- код для того же,
}
В приведенном выше примере r = page / view - это параметр, на который я хочу получить ответ с параметром
источник