2011-09-10 30 views
17

Estoy tratando de comprender OAuth 2.0 (SERVER SIDE FLOW). Tomemos un ejemplo simple de la API de contactos de Google.OAuth 2.0 Token y Lifetime

Según las especificaciones, he registrado mi aplicación en Google y tengo Client ID y Client secret. También he mencionado la URL de devolución de llamada.

Obtener token de acceso me obliga a hacer

  1. usuario redirigir a una URL determinada con cuerdas y cabeceras de preguntas necesarios como se menciona en el documento de OAuth en Google sitio (https://accounts.google.com/o/oauth2/auth bla bla cosas)

  2. Después el usuario ingresa sus credenciales, se las envía a la URL de devolución de llamada como se menciona en mi APLICACIÓN, que ya me he registrado en google. aquí el parámetro querystring & code = 4/P7q7W91a-oMsCeLvIaQm6bTrgtp6 bla bla también se agrega para devolver la URL. Por lo tanto, ahora tienen el código de autorización

  3. Ahora, envío una solicitud al https://accounts.google.com/o/oauth2/token con el código de autorización que obtuve en el paso anterior para obtener token de acceso y refrescar el token.

Una vez que tengo este "token de acceso", puedo tener acceso (digo API de contactos y conseguir contactos del usuario)

Todo está bien hasta este punto. También entiendo que los tokens de acceso tienen una vida útil limitada y podemos obtener un nuevo token de acceso usando "token de actualización".

A. Como desarrollador, ¿es mi responsabilidad almacenar y verificar si el "token de acceso" es válido?

B. Si mi sitio web es un sitio web público con cuenta de "Iniciar sesión con Google/FB/twitter", ¿cómo sé que es el mismo usuario que ha vuelto al sitio después de 2 días y no lo necesito para preguntar? para iniciar sesión, en su lugar el usuario debe iniciar sesión automáticamente en el sitio? cauz, no quiero que pase por el proceso de autorización, ya que ya dieron permiso para mi aplicación.

E.G: He iniciado sesión en el sitio web TechCrunch utilizando mi inicio de sesión FB y puedo comentar artículos. Ahora, incluso después de 1 semana si visito TechCrunch, no tengo que volver a iniciar sesión. ¿cómo saben que soy yo y ya estoy autenticado?

Respuesta

14
  1. Al usar OAuth 2.0, obtiene un token de acceso que tiene un tiempo de caducidad enviado junto con él. O bien puede realizar un seguimiento de cuándo caduca o puede seguir usándolo hasta que obtenga un error INVALID_TOKEN. Luego necesitarás llamar al servicio de token de actualización para obtener un nuevo token de acceso. Tu token de actualización es bueno hasta que se revoque.

  2. Esto es OpenID, no OAuth. El flujo es similar, pero es para iniciar sesión en un usuario en su servicio. OAuth es para que usted recupere los datos del usuario de otra cuenta.

+0

Para B, entonces necesito implementar algo OpenID en el sitio web para que los usuarios puedan iniciar sesión usando FB/twitter/Google, etc. y luego OAuth por separado para que pueda extraer sus datos. Corrígeme si mi comprensión es incorrecta. – NoobDeveloper

+0

Sí y no. Hay un [protocolo híbrido] (http://code.google.com/apis/accounts/docs/OAuth.html) que le permite hacer ambas cosas a la vez. –

+0

el enlace del protocolo híbrido me apunta a OAuth 1.0. No usaré OAuth 1.0 – NoobDeveloper

Cuestiones relacionadas