Estrategia de token JWT para frontend y backend

Estoy escribiendo una aplicación con un front end en emberjs y backend / server-side en un servidor nodejs. Tengo emberjs configurados para que un usuario pueda iniciar sesión / registrarse con un Oauth de terceros (google, twitter, Facebook). Tengo un backend escrito en el servidor express nodejs que aloja las API RESTful.

No tengo DB conectado a emberjs y no creo que deba hacerlo de todos modos ya que es estrictamente el código del lado del cliente. Estoy planeando usar JWT para comunicarme entre el lado del cliente y el lado del servidor. Cuando un usuario inicia sesión con su crédito oauth, obtengo un objeto JSON del proveedor con uid, name, login, access_token y otros detalles.

Estoy luchando con elegir una estrategia sobre cómo manejar el registro de usuarios. No hay proceso de registro ya que es OAuth. Entonces, el flujo es si el usuario no está en mi base de datos, créelo. No soporto la autenticación de correo electrónico / contraseña. ¿Cuál sería el flujo cuando un usuario inicia sesión con un proveedor de OAuth por primera vez? ¿Debería emberjs enviar todos los detalles al backend en cada inicio de sesión para que el backend pueda agregar nuevos usuarios a la base de datos?

¿Qué debería ser parte de mi cuerpo JWT? Estaba pensando en uid y el proveedor proporcionó el token de acceso. Un problema que se me ocurre aquí es que el token de acceso específico del proveedor puede cambiar. El usuario puede revocar el token del sitio del proveedor y registrarse nuevamente con emberjs.

Estoy abierto a escribir el front-end en cualquier otro marco del lado del cliente javascript si lo hace más fácil.

Respuestas a la pregunta(3)

Su respuesta a la pregunta