expiration example node.js authentication oauth

node.js - example - firebase token expiration



iOS y node.js: ¿cómo verificar el token de acceso pasado? (2)

A mi leal saber y entender (y por lo que puedo decir al leer las especificaciones), las especificaciones de OAuth y OAuth 2 no especifican un único punto final para la validación del token de acceso. Eso significa que necesitará un código personalizado para que cada uno de los proveedores valide un token de acceso solamente.

Busqué qué hacer para los puntos finales que especificaste:

Facebook

Parece que others usuarios han utilizado el punto final "me" de la API gráfica para que Facebook compruebe si el token es válido. Básicamente, solicite:

https://graph.facebook.com/me?access_token={accessToken}

Google

Google tiene un punto final dedicado para obtener información de token de acceso, con buena documentación , también. Básicamente, solicite:

https://www.googleapis.com/oauth2/v1/tokeninfo?access_token={accessToken}

Gorjeo

Twitter no parece tener una manera realmente obvia de hacer esto. Sospecho que debido a que los datos de configuración de la cuenta son bastante estáticos, esa podría ser la mejor manera de verificar (¿los tweets de captura probablemente tendrían una mayor latencia?), Por lo que puede solicitar (con la firma OAuth apropiada, etc.):

https://api.twitter.com/1.1/account/settings.json

Tenga en cuenta que esta API tiene un límite de velocidad de 15 veces por ventana.

En general, todo esto parece más complicado de lo que parece. Podría ser una mejor idea implementar algún tipo de soporte de sesión / autenticación en el servidor. Básicamente, puede verificar el token de OAuth externo que recibe una vez, y luego asignarle al usuario un token de sesión propio con el que se autentica con el ID de usuario (correo electrónico, ID de FB, lo que sea) en su propio servidor, en lugar de continuar Solicite a los proveedores de OAuth por cada solicitud que reciba usted mismo.

¡Espero que ayude!

Tengo un iOS que utiliza proveedores de OAuth y OAuth2 (Facebook, google, twitter, etc.) para validar a un usuario y proporcionar tokens de acceso. Aparte de los datos mínimos, como el nombre y la dirección de correo electrónico, la aplicación no utiliza estos servicios para nada, excepto la autenticación.

La aplicación luego envía el token de acceso a un servidor para indicar que el usuario está autenticado.

El servidor está escrito en Node.js y, antes de hacer cualquier cosa, necesita validar el token de acceso suministrado con el servicio OAuth * correcto.

He estado buscando, pero hasta ahora todos los módulos de autenticación node.js que he encontrado parecen ser para iniciar sesión y autenticarse a través de las páginas web proporcionadas por el servidor.

¿Alguien sabe algún módulo de node.js que pueda realizar una validación simple de un token de acceso suministrado?


Para obtener información sobre el token del uso de Google, tenga cuidado con la versión api https://www.googleapis.com/oauth2/v3/tokeninfo?access_token={accessToken}