Sto tentando di aggiungere Google+ auth per sito wordpress. Cosa voglio: dopo l'autenticazione in Google+ se l'utente non è registrato sul sito, lo reindirizzo alla pagina in cui inserisce il suo nome utente; se l'utente già registrato - verrà registrato nel qui mio codice js:Accesso a Google+ per autenticazione app lato server non funzionante
function doGooglePlusLogin(authResult) {
if (authResult['code']) {
jQuery('#signinButton').attr('style', 'display: none');
jQuery.ajax({
url: '<?php echo site_url(); ?>/wp-admin/admin-ajax.php',
type: 'get',
dataType: 'json',
data: {
action: 'login_gplus',
code: authResult['code']
},
success: function(result) {
},
});
} else if (authResult['error']) {
}
}
qui il mio codice PHP:
function login_gplus() {
$response = array();
if (isset($_GET['code']) && !empty($_GET['code'])) {
@session_start();
$client = new Google_Client();
$client->setApplicationName('Test');
$client->setAccessType('offline');
$client->setClientId(get_option(SOCIAL_GPLUS_CLIENT_ID));
$client->setClientSecret(get_option(SOCIAL_GPLUS_CLIENT_SECRET));
$client->setDeveloperKey(get_option(SOCIAL_GPLUS_API_KEY));
$client->setRedirectUri(get_option(SOCIAL_GPLUS_REDIRECT_URIS));
$client->setApprovalPrompt('auto');
$code = $_GET['code'];
$client->authenticate($code);
$token = json_decode($client->getAccessToken());
$reqUrl = 'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=' . $token->access_token;
$req = new Google_HttpRequest($reqUrl);
$tokenInfo = json_decode(
$client->getIo()
->authenticatedRequest($req)
->getResponseBody());
if ($tokenInfo->error) {
$response['test'] = $tokenInfo->error;
send_json_response($response);
die();
}
if ($tokenInfo->audience != get_option(SOCIAL_GPLUS_CLIENT_ID)) {
$response['test'] = "Token's client ID does not match app's.";
send_json_response($response);
die();
}
$response['test'] = 'Succesfully connected with token: ' . print_r($token, true);
}
send_json_response($response);
die();
}
utente autorizzato con successo in Google+, ma in php ho ottenuto questo:
.Errore irreversibile: eccezione non rilevata 'Google_AuthException' con messaggio 'Errore durante il recupero del token di accesso OAuth2, messaggio:' redirect_uri_mismatch '' in/var/www/html/v4/wp-content/plugins/social/google-plus/google-api /auth/Google_OAuth2.php:113Stack traccia: # 0/var/www/html/v4 /wp-content/plugins/social/google-plus/google-api/Google_Client.php(131): Google_OAuth2-> authenticate (Array, '4/ScmpTqEIWt0SJ ...') # 1/var/www/html/v4 /wp-content/plugins/social/google-plus/functions.php(35): Google_Client-> authenticate ('4/ScmpTqEIWt0SJ ...') # 2 [funzione interna]: login_gplus ('') # 3/var /www/html/v4/wp-includes/plugin.php(406): call_user_func_array ('login_gplus', Array) # 4 /var/www/html/v4/wp-admin/admin-ajax.php(74): do_action ('wp_ajax_nopriv _...') # 5 {main} gettato in /var/www/html/v4/wp-content/plugins/social/google-plus/google-api/auth/Google_OAuth2.php on line 113
In Impostazioni app Reindirizza URI specificati come http://example.com/wp-admin/admin-ajax.php. Cosa faccio di sbagliato?
EDIT:
a Google+ definizione del pulsante:
<span id="signinButton">
<span class="g-signin"
data-callback="doGooglePlusLogin"
data-clientid="<?php echo $this->gplus_client_id; ?>"
data-cookiepolicy="single_host_origin" data-accesstype="offline"
data-requestvisibleactions="http://schemas.google.com/AddActivity"
data-scope="https://www.googleapis.com/auth/plus.login">
</span>
</span>
SOCIAL_GPLUS_REDIRECT_URIS è example.com/wp-admin/admin-ajax.php?action=login_gplus
Stai usando un [Google+ pulsante di accesso] (https://developers.google.com/+/web/signin/) o stai innescare il flusso da soli? Si prega di inviare il codice front-end che mostra come questo flusso viene attivato. Abbiamo bisogno di vedere i parametri di configurazione che vengono passati a Google. (nascondete il vostro ID cliente. Inoltre, dobbiamo vedere sul lato PHP cosa sono i valori presenti per SOCIAL_GPLUS_REDIRECT_URIS – BrettJ
Sto utilizzando il pulsante Accesso a Google+. ' ' – Peter
SOCIAL_GPLUS_REDIRECT_URIS è http://example.com/wp-admin/admin-ajax.php?action=login_gplus – Peter