Express.js menandatangani cookie di antara dua instance

Adakah yang tahu apakah mungkin untuk menandatangani dan membatalkan penandatanganan cookie yang sama dari instance node-express yang berbeda?

Saya menjalankan satu instance ekspres yang bertanggung jawab untuk otentikasi pengguna:

  1. Pengguna masuk
  2. Pengguna mendapat cookie yang ditandatangani dengan info kredensial

Dan saya memiliki instance express/socket.io lain yang harus menggunakan cookie yang ditandatangani itu dan menggunakan kredensial tersebut:

  1. Setelah pengguna menandatangani koneksi cookie ke soket dibuat
  2. Saat jabat tangan saya ingin menghapus tanda tangan cookie itu
  3. Informasi kredensial pengguna

Apakah ini mungkin menggunakan express.cookieParser atau modul lainnya?


person Vytautas Butkus    schedule 20.03.2014    source sumber


Jawaban (1)


Anda harus dapat menggunakan cookieParser dengan rahasia bersama.

(Saya biasanya menyarankan agar Anda menyimpan informasi kredensial dalam sesi berbasis server, daripada dikodekan dalam cookie. Hal ini tidak hanya lebih aman, tetapi juga memungkinkan beberapa instance berbagi info sesi yang sama. Lihat Apa yang dimaksud dengan penyimpanan sesi yang bagus untuk single -host aplikasi produksi Node.js?)

person skieter    schedule 20.03.2014
comment
Saya mencoba menggunakan cookieParser dengan rahasia yang sama di kedua ujungnya tetapi karena beberapa alasan tidak dapat membatalkan tanda tangan dengan benar. Saya pikir ini menggunakan beberapa variabel instan untuk menandatangani cookie bersama dengan rahasia... Juga ide lain yang muncul di benak saya adalah menggunakan JWT dan beroperasi dengan token.. - person Vytautas Butkus; 20.03.2014
comment
Saya tidak dapat menemukan variabel lingkungan apa pun yang digunakan, hanya rahasianya. Versi koneksi apa yang telah Anda instal? Apakah Anda menggunakan domain yang sama untuk cookie dan dikirimkan oleh browser? - person skieter; 21.03.2014