Sto provando a creare un'applicazione di chat basata su sails.js. L'URL per i messaggi da una specifica chat di simile a questa:Autorizzazione Sails.js per richieste socket
/api/chat/:id/messages
Quando chiedo questo URL con XHR, fornisce un cookie di sessione e sails.js costruisce un oggetto di sessione. Posso facilmente controllare i diritti degli utenti per leggere i messaggi dalla chat specifica.
Tuttavia, ho bisogno di richiedere questo URL con socket.io in modo che il client possa sottoscrivere tutte le future modifiche della collezione messages
.
Quando richiedo questo URL con socket.io, non viene impostato alcun cookie di sessione e la sessione sails.js è vuota. Quindi, non posso controllare i diritti utente sul lato server.
Capisco che le richieste di socket non siano richieste HTTP. Non forniscono alcun cookie per conto proprio.
C'è qualche soluzione semplice?
Per chiarire, stai riscontrando questo problema tra domini, giusto? Come in hai incorporato uno script su www.foo.com e aprendo un socket su www.bar.com? – mikermcneil
No, Mike: non è un problema inter-dominio. Ho finalmente trovato la risposta e l'ho pubblicata qui sotto. Devi accedere al tuo oggetto sessione socket in un modo diverso. P.S. Forse dovresti implementare questa soluzione alternativa nel core sails.js. – alevkon