integrar google developer apis javascript google-plus google-oauth google-plus-signin

developer - ¿Cómo obtener el token de acceso de Google Sign-In Javascript SDK?



integrar login google en mi web (2)

Espero que estés bien. Aquí está la solución. Puede intentar esto: en realidad no existe tal nombre de función getAccessToken (solo Android) definido en GoogleSignin.android.js como está escrito aquí https://github.com/devfd/react-native-google-signin . Pero la mejor parte es que ya han implementado la solución en GoogleSignin.android.js. simplemente eche un vistazo al siguiente código de GoogleSignin.android.js

currentUserAsync() { return new Promise((resolve, reject) => { const sucessCb = DeviceEventEmitter.addListener(''RNGoogleSignInSilentSuccess'', (user) => { this._user = user; RNGoogleSignin.getAccessToken(user).then((token) => { this._user.accessToken = token; this._removeListeners(sucessCb, errorCb); resolve(this._user); }) .catch(err => { this._removeListeners(sucessCb, errorCb); resolve(this._user); }); });

La cosa es que solo tenemos que usar este código sabiamente. He utilizado el siguiente código para obtener access_token y me ayuda a resolver mi problema de token de acceso. Cambio la función anterior como esta en GoogleSignin.android.js

currentUserAsync() { return new Promise((resolve, reject) => { const sucessCb = DeviceEventEmitter.addListener(''RNGoogleSignInSilentSuccess'', (user) => { this._user = user; RNGoogleSignin.getAccessToken(user).then((token) => { this._user.accessToken = token; this._removeListeners(sucessCb, errorCb); resolve(token); }) .catch(err => { this._removeListeners(sucessCb, errorCb); resolve(this._user); }); });

y llamo a esta función así desde index.android.js.

_signIn() { GoogleSignin.signIn() .then((user) => { console.log(''this1'' + JSON.stringify(user)); this.setState({user: user}); var gettoken = GoogleSignin.currentUserAsync(user).then((token) => { console.log(''USER token'', token); this.setState({user: user}); }).done(); }).catch((err) => { console.log(''WRONG SIGNIN'', err); }) .done(); }

Puedes llamarlo como una función individual que se vea así. en GoogleSignin.android.js

getAccessTok(user) { RNGoogleSignin.getAccessToken(user).then((token) => { this._user.accessToken = token; resolve(token); }) .catch(err => { this._removeListeners(sucessCb, errorCb); console.log(''got error''); resolve(this._user); }); }

y desde index.android.js simplemente llame a esta función como esta

_getToken(){ console.log(GoogleSignin.getAccessTok(this.state.user)); }

Lo único que tienes que hacer es pasar al usuario actual para obtener el token de acceso. Espero que esto te ayude. Que tengas un gran día. Gracias.

Tengo una simple aplicación web javascript de una sola página que utiliza "Inicio de sesión de Google para sitios web": https://developers.google.com/identity/sign-in/web/sign-in

¿Cómo puedo obtener un token de acceso para el usuario? Necesito una afirmación verificable de la identidad del usuario en mi servidor. No quiero acceso sin conexión; Solo quiero saber que cuando el cliente web envía una solicitud ajax a mi servidor, puedo confiar en la identidad del usuario que inició sesión.


Para fines de verificación, sería mejor usar el id_token que es parte de la respuesta de autenticación, y se puede recuperar en cualquier punto como este:

gapi.auth2.getAuthInstance().currentUser.get().getAuthResponse().id_token

Las bibliotecas del cliente API de Google ofrecen funciones para verificar el id_token y brindarle la información de usuario asociada en el lado del servidor: https://developers.google.com/api-client-library/