setaccesstype secret refreshtoken playground google oauth google-api

oauth - secret - refreshtoken api google



google oauth2 redirect_uri con varios parĂ¡metros (3)

  1. No puede agregar nada al uri de redireccionamiento, el uri de redirección es constante como se establece en la configuración de la aplicación de Oauth. ej .: http://www.example.com/redirect.html

  2. Para pasar varios parámetros a su uri de redireccionamiento, hágalos almacenados en el parámetro de state antes de llamar a la url de Oauth, la url después de la autorización enviará los mismos parámetros a su uri de redirección como state=THE_STATE_PARAMETERS

Entonces, para tu caso, haz esto:

/ 1. crea una cadena json de tus parámetros ->

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

/ 2. hacer un base64UrlEncode, para que sea URL segura ->

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

Este es un ejemplo de PHP de 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, ''-_,'', ''+/='')); }

Así que ahora el estado sería algo así como: stateString -> asawerwerwfgsg,

Pase este estado en la URL de autorización de 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,

Para el flujo del servidor vendrá con token: http://www.example.com/redirect.html?token=sdfwerwqerqwer&state=asdafwswdwefwsdg ,

Para el flujo del lado del cliente vendrá en el hash junto con el token de acceso: http://www.example.com/redirect.html#access_token=portyefghsdfgdfgsdgd&state=asdafwswdwefwsdg ,

Recupera el estado, base64UrlDecode it, json_decode it, y tienes tus datos.

Ver más sobre google OAuth 2 aquí:

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

¿Cómo agregar un parámetro al google oauth2 redirect_uri?

Justo como este redirect_uri=http://www.example.com/redirect.html?a=b .

El b de a=b es aleatorio.

Cualquiera puede ayudar?


Puedes redirigir el parámetro con url como se muestra a continuación,

Cuando recibes una respuesta de google, puedes pasar el parámetro con url,

Vea a continuación el código php para el mismo,

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'');

}

En el ejemplo anterior r = página / vista es el parámetro en el que quiero la respuesta con el parámetro


Si está en .NET puede guardar los parámetros en la Sesión

HttpContext.Current.Session[{varname}]

y redirigir a la página de autorización sin parámetros

Response.Redirect(your_uri_approved_with_no_querystring_parameters);