2009-10-06 24 views
55

En mi sitio, me gustaría permitir que los usuarios inicien sesión con una cuenta de Google. Planeo usar openid pero me gustaría permitir el inicio de sesión con google porque tiene más beneficios. Me he dado cuenta en el pasado de algunos sitios que tienen la capacidad de iniciar sesión con una cuenta de google (gmail) y IIRC aunque NO admitían openID (pero podría estar equivocado).¿Cómo implemento 'iniciar sesión con google' en mi sitio?

¿Cómo implemento 'iniciar sesión con google'?

Respuesta

1

Creo que lo que estás buscando es Google Accounts API.

+0

al hacer clic en ese enlace buscar 'googles api console' para configurar una clave, etc. –

0

Puede buscar en openId (http://openid.net/) que es lo que SO utiliza, y es compatible con Google.

+3

Decirle a alguien que mire a openid.net para iniciar sesión es como decirle a alguien que quiere algo de comer que mire en una tienda de suministros de pesca Simplemente no ayuda. Período. – Tino

29

Si va a utilizar OpenID, úselo. Google ya es un proveedor de OpenID 2.0.

proveedor de OpenID de Google se encuentra en: https://www.google.com/accounts/o8/ud

(NOTA:. No hay razón para visitar ese URI en su navegador, pero funciona para OpenID)

Esta se dirige principalmente en la página Accounts API , que también aborda OAuth y los sistemas de inicio de sesión híbridos y propietarios. Dependiendo de su sitio, también puede usar Friend Connect, que es un contenedor OpenSocial que internamente usa OpenID para la autenticación.

Por supuesto que estoy predispuesto hacia Friend Connect, ya que soy el DPE para ese proyecto, pero probablemente sea mejor que lo haga directamente utilizando el proveedor OpenID a menos que también esté haciendo cosas que involucren un gráfico social.

Editar para 2012: Desea utilizar OAuth 2.0 for login. GFC está siendo shut down.

+1

2011 ha quedado obsoleto http://code.google.com/apis/friendconnect/ – YumYumYum

+5

2012 se ha movido de nuevo a https://developers.google.com/accounts/ –

+1

instrucciones en esta página: https://developers.google .com/accounts/docs/OAuth2 busca 'googles api console' para configurar una clave api, etc. –

14

Puede estar interesado en RPX que es una solución todo en uno que permite a las personas elegir qué proveedor de identidad les gustaría utilizar para iniciar sesión en su sitio. No solo se admiten Google y OpenID, sino también muchos otros.

RPX se ocupa de todos los detalles de la interfaz con cada proveedor de identidad y le proporciona una API común para trabajar.

+0

Lo he usado y es muy fácil de configurar con un sitio ASP.Net. ¡Además es gratis! –

+0

Aunque ya marqué el otro como correcto, creo que iré con tu solución :) (Él simplemente lo gana, originalmente, quería ver una API específica de Google) –

+3

Como el tipo que escribió la otra respuesta, también estoy de acuerdo ese RPX es probablemente la mejor manera de * implementar * OpenID para la mayoría de los usos. Tiene una excelente interfaz de usuario, y es fácil de instalar y usar. –

1

pero me gustaría para permitir iniciar sesión con Google

En este caso, añada el siguiente código

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

Integración de sesión de Google en su aplicación web

Create a Google Developers Console project and client ID.

cargar la biblioteca de la plataforma Google

Debe incluir la biblioteca de Google Plataforma en sus páginas web que integrar Google Registrarse.

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

especificar el ID de cliente de la aplicación

Especificar el ID de cliente que creó para su aplicación en la Consola para programadores de Google con el elemento meta Google-signin del Cliente.

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

Nota: También puede especificar el ID de cliente de su aplicación con el parámetro del método client_id gapi.auth2.init().

Añadir una sesión de Google botón

La forma más fácil de añadir un botón de acceso de Google a su sitio es utilizar un inicio de sesión rendido de forma automática botón. Con solo unas pocas líneas de código, puede agregar un botón que se configura automáticamente para tener el texto, el logotipo y los colores apropiados para el estado de inicio de sesión del usuario y los ámbitos que solicita.

Para crear un botón de inicio de sesión de Google que utiliza la configuración por defecto, añadir un elemento div con la clase g-signin2 a su página de registro:

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

otra información. se puede encontrar here

Cuestiones relacionadas