2012-05-20 1 views
7

Avviato l'apprendimento di backbone.js e require.js.backbone.js + require.js + autenticazione utente

Non so come strutturare i file per l'app Web con l'autenticazione dell'utente.

sembra che dovrebbe scorrere in questo modo:

  1. applicaz init, server di query per verificare lo stato della sessione di autenticazione;
    • Q # 1: dove dovrei scrivere questo codice di sessione 'after init' - in /js/app.js?
    • Q # 2: dovrei usare jQuery ajax per questo, o ci sono migliori metodi di backbone.js (Ho visto riferimenti a get(), fetch(), toJSON() negli esempi)?
  2. In caso di successo, memorizzare i dati di autorizzazione in un modello (user_id, username, auth_token).
    • Q # 3: come/dove devo avviare questo modello in modo che possa accedere a tali dati attraverso i moduli? vale a dire. Avrò una vista per visualizzare template per "isLoggedIn.html" che leggerà "Hello% username%! Logout". Voglio accedere al campo 'username' da questo modello. Attualmente, vedo solo come creare un nuovo modello facendolo riferimento nella definizione della vista [], quindi non so come accedere al modello che è stato creato durante init.
  3. Will utilizzare jQuery $ .cookies per salvare e ottenere questi dati di autenticazione, quindi se l'utente lascia la pagina e ritorna, posso interrogare server per verificare sessione invece di richiedere all'utente di accedere di nuovo.
    • Q # 4: come includere il plug-in jquery.cookies.js in questa app requirejs, in modo da poter utilizzare in seguito $ .cookies come al solito? Dovrei aggiungere questo plugin alla lista define []? Devo aggiungerlo al file /js/jquery/loader.js?

Grazie per la vostra assistenza.

Modifica: Ho utilizzato i file dall'esempio modular-backbone per creare la mia app Web. Quindi quando parlo di /js/app.js e js/router.js, questi sono i file a cui mi riferisco.

+1

Per Q3: non è possibile creare il modello utente e quindi passarlo alle viste pertinenti quando si costruiscono tali viste? –

+0

Inoltre, cosa intendi quando puoi definire un nuovo modello solo quando lo definisci in definizione? Pubblica uno snippet del codice di quel modello? –

+0

Sto usando la struttura da backbone modulare. Quindi nella mia app.js sto creando 'var credentials = new authModel()'. Da quanto ho capito, devo quindi accedere a questa variabile 'credentials' nella vista di login. Ma le credenziali non sono una variabile globale, quindi nella credenziale le credenziali di accesso sono nulle - non si vede alcun dato. – codemonkey613

risposta

2

Sono nella stessa situazione. Ho trovato this post e sembra che l'opzione migliore per fare qualcosa prima di ogni richiesta è di utilizzare this solution.

Prima di accedere e URL tranne/login, ho intenzione di autenticarsi per cookie o eseguire la vista di accesso.

Circa il modo per includere altre cartelle (jQuery cookie) - basta usare il meccanismo require.js:

  1. Nel file 'require.config' principale -> 'percorsi' aggiungere la posizione plug-in (jqueryCokkie :)
  2. secondo lei in 'definire' aggiungere il nome del percorso ('jqueryCookie') e passarlo al finction
  3. il file .js dovrebbe essere nel following structure (ho cercato di incollare l'esempio di codice qui, ma avuto problemi ...).