¿Cómo hago una PUBLICACIÓN en los puntos finales de OAuth 2.0 de Google para obtener autorización?
Estoy creando una extensión de Chrome en React y he estado siguiendo la documentación de Google . Parece bastante sencillo, pero no entiendo completamente la mecánica de la implementación.
Por ejemplo, en mi archivo popup.js llamo a mi archivo background.js que realiza una solicitud POST a la URL de redirección creada. El paso 3 de la guía dice que Google solicitará al usuario su consentimiento, sin embargo, eso nunca sucede. Recibo una respuesta de 200, pero no estoy seguro de adónde ir después de eso.
¿Qué estoy haciendo mal? ¡Gracias!
axios .post( `https://accounts.google.com/o/oauth2/v2/auth? scope=https%3A//www.googleapis.com/auth/drive.metadata.readonly& include_granted_scopes=true& response_type=token& state=state_parameter_passthrough_value& redirect_uri=https%3A//oauth2.example.com/code& client_id=client_id` //actual values added ) .then(function (response) { console.log('RESPONSE', response); });El paso 2 en ese documento se titula
Paso 2: redirigir al servidor OAuth 2.0 de Google
Está intentando realizar una solicitud XHR con POST .
El documento proporciona código de muestra con y sin su biblioteca cliente. Sin la biblioteca del cliente, puede ver que es una solicitud GET usando un formulario (que cambia la URL en el navegador, redirigiendo efectivamente):
/* * Create form to request access token from Google's OAuth 2.0 server. */ function oauthSignIn() { // Google's OAuth 2.0 endpoint for requesting an access token var oauth2Endpoint = 'https://accounts.google.com/o/oauth2/v2/auth'; // Create <form> element to submit parameters to OAuth 2.0 endpoint. var form = document.createElement('form'); form.setAttribute('method', 'GET'); // Send as a GET request. form.setAttribute('action', oauth2Endpoint); // Parameters to pass to OAuth 2.0 endpoint. var params = {'client_id': 'YOUR_CLIENT_ID', 'redirect_uri': 'YOUR_REDIRECT_URI', 'response_type': 'token', 'scope': 'https://www.googleapis.com/auth/drive.metadata.readonly', 'include_granted_scopes': 'true', 'state': 'pass-through value'}; // Add form parameters as hidden input values. for (var p in params) { var input = document.createElement('input'); input.setAttribute('type', 'hidden'); input.setAttribute('name', p); input.setAttribute('value', params[p]); form.appendChild(input); } // Add form to page and submit it to open the OAuth 2.0 endpoint. document.body.appendChild(form); form.submit(); }