2012-05-20 60 views
7

Comenzó aprendiendo backbone.js y require.js.backbone.js + require.js + autenticación de usuario

No estoy seguro de cómo estructurar archivos para aplicaciones web con autenticación de usuario.

parece que debe fluir de esta manera:

  1. sobre inicio de aplicaciones, servidor de consultas para comprobar el estado de sesión de autenticación;
    • Q # 1: ¿Dónde debería estar escribiendo este código de sesión 'after init' - en /js/app.js?
    • Q # 2: ¿debería estar usando jQuery ajax para esto, o hay mejores métodos backbone.js (he visto referencias a get(), fetch(), toJSON() en ejemplos)?
  2. Si tiene éxito, almacene datos de autenticación en un modelo (user_id, username, auth_token).
    • Q # 3: cómo/dónde inicio este modelo para que pueda acceder a esa información en todos los módulos? es decir. Tendré una vista para mostrar la plantilla para 'isLoggedIn.html' que dirá "Hello% username%! Logout". Quiero acceder al campo 'nombre de usuario' de este modelo. Actualmente, solo veo cómo crear un nuevo modelo haciendo referencia a él en la definición de la vista [], por lo que no sé cómo acceder al modelo que se creó durante el inicio.
  3. Utilizaré jQuery $ .cookies para guardar y obtener estos datos de autenticación, así que si el usuario abandona la página y vuelve, puedo consultar el servidor para verificar la sesión en lugar de requerir que el usuario inicie sesión de nuevo.
    • Q # 4: ¿cómo incluyo el plugin jquery.cookies.js en esta aplicación requirejs, para que luego pueda usar $ .cookies como de costumbre? ¿Se supone que debo agregar este complemento a la lista de definición []? ¿Debo agregarlo al archivo /js/jquery/loader.js?

Gracias por su ayuda.

Editar: He utilizado los archivos desde modular-backbone ejemplo para crear mi aplicación web. Entonces, cuando estoy hablando de /js/app.js y js/router.js, esos son los archivos a los que me refiero.

+1

Para Q3: ¿no puedes crear el modelo de usuario y luego pasarlo a las vistas relevantes cuando construyes esas vistas? –

+0

Además, ¿a qué te refieres con que solo puedes crear un nuevo modelo al hacer referencia a él en definir? Publicar un fragmento del código de ese modelo? –

+0

Estoy usando la estructura de modular-backbone. Entonces en mi app.js estoy creando 'var credentials = new authModel()'. Por lo que entiendo, entonces tengo que acceder a esta var 'credenciales' en la vista de inicio de sesión. Pero las credenciales no son una variable global, por lo que en las credenciales de vista de inicio de sesión es nula: no se ven los datos. – codemonkey613

Respuesta

2

Estoy en la misma situación también. Encontré this post y parece que la mejor opción para hacer algo antes de cada solicitud es usar this solution.

Antes de acceder y URL except/login, voy a autenticarme mediante cookies o ejecutar la vista de inicio de sesión.

Sobre la manera de incluir otras carpetas (jQuery cookie) - sólo tiene que utilizar el mecanismo require.js:

  1. En su 'require.config' archivo principal -> 'caminos' Agregar la ubicación del plugin (jqueryCokkie :)
  2. en su opinión en 'definir' añadir el nombre de la ruta ('jqueryCookie') y pasarlo a la finction
  3. el archivo .js debe estar en el following structure (he intentado pegar el código de ejemplo aquí, pero tiene problemas ...).
Cuestiones relacionadas