Jak dodać parametry do google oauth2 redirect_uri?
Tak po prostu redirect_uri=http://www.example.com/redirect.html?a=b
.
b
Od a=b
jest przypadkowa.
Czy ktoś może pomóc?
źródło
Jak dodać parametry do google oauth2 redirect_uri?
Tak po prostu redirect_uri=http://www.example.com/redirect.html?a=b
.
b
Od a=b
jest przypadkowa.
Czy ktoś może pomóc?
Nie możesz nic dodać do adresu uri przekierowania, adres uri przekierowania jest stały, zgodnie z ustawieniami aplikacji Oauth. np .: http://www.example.com/redirect.html
Aby przekazać kilka parametrów do twojego przekierowania uri, state
zapisz je w parametrze przed wywołaniem Oauth url, adres url po autoryzacji wyśle te same parametry do twojego przekierowania uri jak
state=THE_STATE_PARAMETERS
Więc w swoim przypadku zrób to:
/ 1. utwórz ciąg json swoich parametrów ->
{ "a" : "b" , "c" : 1 }
/ 2. wykonaj base64UrlEncode, aby adres URL był bezpieczny ->
stateString = base64UrlEncode('{ "a" : "b" , "c" : 1 }');
To jest przykład 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, '-_,', '+/='));
}
Więc teraz stan wyglądałby tak: stateString -> asawerwerwfgsg,
Przekaż ten stan w adresie URL autoryzacji 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,
W przypadku przepływu po stronie serwera będzie on dostarczany wraz z tokenem: http://www.example.com/redirect.html?token=sdfwerwqerqwer&state=asdafwswdwefwsdg ,
W przypadku przepływu po stronie klienta pojawi się w skrócie wraz z tokenem dostępu: http://www.example.com/redirect.html#access_token=portyefghsdfgdfgsdgd&state=asdafwswdwefwsdg ,
Pobierz stan, base64UrlDecode it, json_decode it i masz swoje dane.
Zobacz więcej o Google OAuth 2 tutaj:
state
param przejść kilka parametrów w celu przekierowania URI i zapobiecCSRF
ataku w tym samym czasie ?CSRF
atakom)?Jeśli jesteś w .NET, możesz zapisać parametry w Session
i przekierować do strony autoryzacji bez parametrów
źródło
Session
należy unikać przechowywania dowolnego stanu klienta w IMO .Możesz przekierować parametr z adresem URL jak poniżej,
Gdy otrzymasz odpowiedź od Google, możesz przekazać parametr z adresem URL,
Zobacz poniżej kod php dla tego samego,
}
W powyższym przykładzie r = strona / widok jest parametrem, na który chcę uzyskać odpowiedź z parametrem
źródło