tokeninfo - google oauth2 redirect_uri mit mehreren Parametern




tokeninfo oauth (2)

  1. Du kannst nichts zum Weiterleitungs-URI hinzufügen, die Weiterleitung von URI ist konstant wie in den App-Einstellungen von Oauth festgelegt. zB: http://www.example.com/redirect.html

  2. Um mehrere Parameter an Ihr Weiterleitungs-URI zu übergeben, lassen Sie sie im state vor dem Aufruf von Oauth url speichern. Die URL nach der Autorisierung sendet die gleichen Parameter an Ihr Weiterleitungs-URI wie state=THE_STATE_PARAMETERS

Also für Ihren Fall, tun Sie das:

/ 1. Erstellen Sie eine JSON-Zeichenfolge Ihrer Parameter ->

{ "a" : "b" , "c" : 1 }

/ 2. Mach einen base64UrlEncode, um es URL-sicher zu machen ->

stateString = base64UrlEncode('{ "a" : "b" , "c" : 1 }');

Dies ist ein PHP-Beispiel für 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, '-_,', '+/='));
}

Also wäre der Zustand nun wie folgt: stateString -> asawerwerwfgsg,

Übergeben Sie diesen Status in der OAuth-Autorisierungs-URL:

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,

Für serverseitigen Fluss wird es mit Token kommen: http://www.example.com/redirect.html?token=sdfwerwqerqwer&state=asdafwswdwefwsdg ,

Für den clientseitigen Fluss wird es zusammen mit dem Zugriffstoken in den Hash eingegeben: http://www.example.com/redirect.html#access_token=portyefghsdfgdfgsdgd&state=asdafwswdwefwsdg ,

Rufen Sie den Status ab, base64UrlDecodieren Sie ihn, json_decodieren Sie ihn und Sie haben Ihre Daten.

Sehen Sie mehr über Google OAuth 2 hier:

http://code.google.com/apis/accounts/docs/OAuth2.html

https://code.i-harness.com

Wie fügt man dem Google oauth2 redirect_uri Parameter hinzu?

Genau wie dies redirect_uri=http://www.example.com/redirect.html?a=b .

Das b von a=b ist zufällig.

Jeder kann helfen?


Sie können Parameter mit URL wie folgt umleiten,

Wenn Sie eine Antwort von Google erhalten, können Sie Parameter mit URL übergeben.

Siehe unten PHP- Code für das gleiche,

if (isset($_GET['code'])) {
   $client->authenticate();
   $_SESSION['token'] = $client->getAccessToken();
   $redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
   header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL) . '?r=page/view');

}

Im obigen Beispiel ist r = page / view ein Parameter, für den ich die Antwort mit dem Parameter haben möchte