2009-10-06 13 views
55

Sul mio sito vorrei consentire agli utenti di accedere con un account google. Ho intenzione di utilizzare openid ma vorrei consentire l'accesso con google perché ha più vantaggi. In passato ho notato alcuni siti che hanno la possibilità di accedere con un account google (gmail) e IIRC anche se NON supportavano openID (ma potrei sbagliarmi).Come faccio a implementare "accedi con google" sul mio sito?

Come implementare "accedi con google"?

risposta

1

Credo che quello che stai cercando sia lo Google Accounts API.

+0

quando si fa clic su quel collegamento cercare 'googles api console' per impostare una chiave ecc. –

0

È possibile cercare openId (http://openid.net/) che è ciò che SO utilizza ed è supportato da Google.

+3

Dire a qualcuno di guardare openid.net per l'accesso è come dire a qualcuno che vuole qualcosa da mangiare da guardare in un negozio di forniture per la pesca. Semplicemente non aiuta. Periodo. – Tino

29

Se si intende utilizzare OpenID, utilizzare quello. Google è già un fornitore di OpenID 2.0.

provider OpenID di Google si trova in: https://www.google.com/accounts/o8/ud

(NOTA:. Non ha senso la visita che URI nel browser, ma funziona per OpenID)

Questo si rivolge in primo luogo sulla pagina Accounts API , che si rivolge anche a OAuth e ai sistemi di login ibridi e proprietari. A seconda del sito, potresti anche voler utilizzare Friend Connect, che è un contenitore OpenSocial che utilizza internamente OpenID per l'autenticazione.

Sono ovviamente prevenuto nei confronti di Friend Connect, dal momento che sono il DPE per quel progetto, ma probabilmente vi servirà meglio utilizzando direttamente il provider OpenID a meno che non stiate facendo anche cose che coinvolgono un social graph.

Modifica per il 2012: Si desidera utilizzare OAuth 2.0 for login. GFC sta per shut down.

+1

2011 è deprecato http://code.google.com/apis/friendconnect/ – YumYumYum

+5

2012 è stato spostato nuovamente su https://developers.google.com/accounts/ –

+1

istruzioni su questa pagina: https://developers.google .com/accounts/docs/OAuth2 cerca "googles api console" per impostare una chiave API ecc. –

14

Potresti essere interessato a RPX che è una soluzione all-in-one che consente alle persone di scegliere il provider di identità che vorrebbero utilizzare per accedere al tuo sito. Non solo Google e OpenID sono supportati, ma anche molti altri.

RPX si occupa di tutti i dettagli dell'interfaccia con ciascun provider di identità e fornisce un'API comune con cui lavorare.

+0

Ho usato questo ed è molto facile da configurare con un sito ASP.Net. Inoltre è gratis! –

+0

Anche se ho contrassegnato l'altro come corretto penso che andrò con la tua soluzione :) (Ha appena vinto bc originariamente volevo vedere google specifiche API) –

+3

Come il ragazzo che ha scritto l'altra risposta, sarò anche d'accordo che RPX è probabilmente il miglior modo per implementare * OpenID * per la maggior parte degli usi. Ha un'ottima interfaccia utente ed è facile da installare e utilizzare. –

1

ma vorrei per consentire l'accesso con Google

In questo caso, aggiungere il seguente codice

HTML

<div id="mySignin" onclick="login()"><img src="google_image_here.png" alt="google" style="cursor:pointer;height: 60px;width: 309px;"/></div> 

JS

 <script type="text/javascript"> 
     function login() 
     { 
      var myParams = { 
      'clientid' : 'YOUR_CLIENT_ID.apps.googleusercontent.com', 
      'cookiepolicy' : 'single_host_origin', 
      'callback' : 'loginCallback', 
      'approvalprompt':'force', 
      'scope' : 'https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/plus.profile.emails.read' 
      }; 
      gapi.auth.signIn(myParams); 
     } 

     function loginCallback(result) 
     { 
      if(result['status']['signed_in']) 
      { 
       var request = gapi.client.plus.people.get(
       { 
        'userId': 'me' 
       }); 
       request.execute(function (resp) 
       { 
        /* console.log(resp); 
        console.log(resp['id']); */ 
        var email = ''; 
        if(resp['emails']) 
        { 
         for(i = 0; i < resp['emails'].length; i++) 
         { 
          if(resp['emails'][i]['type'] == 'account') 
          { 
           email = resp['emails'][i]['value'];//here is required email id 
          } 
         } 
        } 
        var usersname = resp['displayName'];//required name 
       }); 
      } 
     } 
     function onLoadCallback() 
     { 
      gapi.client.setApiKey('YOUR_API_KEY'); 
      gapi.client.load('plus', 'v1',function(){}); 
     } 

      </script> 

     <script type="text/javascript"> 
       (function() { 
       var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; 
       po.src = 'https://apis.google.com/js/client.js?onload=onLoadCallback'; 
       var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); 
      })(); 
     </script> 
2

Integrazione Sign-In Google nel vostro web app

Create a Google Developers Console project and client ID.

caricare la libreria di Google piattaforma

È necessario includere la libreria di Google piattaforma sulle tue pagine web che integrare Google Registrati.

<script src="https://apis.google.com/js/platform.js" async defer></script> 

specificare l'ID cliente del tuo app

Specificare l'ID client creato per la tua applicazione in Google Developers Console con l'elemento meta google-signin-client_id.

<meta name="google-signin-client_id" content="YOUR_CLIENT_ID.apps.googleusercontent.com"> 

Nota: È inoltre possibile specificare l'ID cliente della tua applicazione con il parametro client_id del metodo gapi.auth2.init().

Aggiungi a Google pulsante di accesso

Il modo più semplice per aggiungere un pulsante di accesso Google al vostro sito è quello di utilizzare un segno-in reso automaticamente pulsante. Con solo poche righe di codice, puoi aggiungere un pulsante che si configura automaticamente per avere il testo, il logo e i colori appropriati per lo stato di accesso dell'utente e per gli ambiti da te richiesti.

per creare un pulsante Sign-In Google che utilizza le impostazioni predefinite, aggiungere un elemento div con la classe g-signin2 alla tua pagina di accesso:

<div class="g-signin2" data-onsuccess="onSignIn"></div> 

altre informazioni. potrebbe essere trovato here

Problemi correlati