Nasıl seansları Node.js ile Express.js çalışmak mı?
Express.js, oturumları kullanarak ölü basittir. Onlar aslında ama nasıl çalıştığını merak ediyorum.
İstemci kurabiye muhafaza ediyor? Eğer öyleyse, nerede bu kurabiye bulabilirim? Gerekirse, bu şifreyi nasıl kıracağız?
Aslında ben de öyle olmak istiyorum mümkün olup olmadığını görmek için bir kullanıcı oturum bile, kullanıcı değil aslında sitesinde (facebook gibi nasıl bilir misin açmış olduğun zaman diğer siteler). Ama ilk seans nasıl çalıştığını anlamak gerekir anlamak için sanırım.
CEVAP
Genel bakış
Express.js kullanan bir çerez saklamak için bir oturum kimliği (bir şifreleme imza) kullanıcının web tarayıcısı ve daha sonra, sonraki istekleri, kullanır değeri kurabiye almak için oturum bilgilerini depolanan sunucu. Bu bir sunucu tarafı depolama hafıza deposu (varsayılan) veya gerekli yöntemleri uygulayan başka bir mağaza (connect-redis gibi) olabilir.
Ayrıntılar
Express.js/req.sessionID 24 karakter Base64 dize utils.uid(24) ve depolar oluşturur Bağlayın. Bu dize daha sonra bir çerez değeri olarak kullanılır.
İstemci Tarafı
İmzalı çerezleri her zaman oturumları için kullanılır, cookie değerini aşağıdaki biçimde olacaktır.
[sid].[signature]
[Sid] sessionıd nerede olduğunu ve [imza] imza [sid] gizli anahtarı katman oturumu başlatırken sağlanan kullanarak oluşturulur. İmza adım oynanmasını önlemek için yapılır. [Sid] olarak değiştirme ve [imza] gizli anahtar kullanılır bilgisi olmadan yeniden hesaplama infeasable olmalıdır. Oturum tanımlama [sid] hiçbir değişiklik gerekli ise hala hırsızlık ve yeniden savunmasız.
Bu tanımlama bilgisi adıdır
connect.sid
Sunucu Tarafı
Eğer bir işleyici cookieParser session katman sonra oluşursa 10* *değişken erişecek. Bu anahtarları ve değerleri cookie değerleri tanımlama bilgisi olan JSON bir nesne içerir. Bu bir anahtar connect.sid adlı içerir ve değerini imzalı oturum kimliği olacak.
İşte oturum varlığı için her istek üzerine kurabiye kontrol edecek ve değerini konsola yazdırma bir rota ayarlamak için nasıl bir örnek.
app.get("/*", function(req, res, next) {
if(typeof req.cookies['connect.sid'] !== 'undefined') {
console.log(req.cookies['connect.sid']);
}
next(); // Call the next middleware
});
Ayrıca yönlendirici (app.use(app.router)) yapılandırma bölümünde cookieParser session sonra dahil olduğundan emin olun gerekir.
Aşağıdaki verileri içten Express tarafından depolanan bir örnektir.js/Bağlayın.
{
"lastAccess": 1343846924959,
"cookie": {
"originalMaxAge": 172800000,
"expires": "2012-08-03T18:48:45.144Z",
"httpOnly": true,
"path": "/"
},
"user": {
"name":"waylon",
"status":"pro"
}
}
user alanında özel. Her şey oturum yönetimi bir parçasıdır.
Örnek İfade 2.5.

Nasıl (sorgu dizesi) Node.js üzerinde ...
Node.js / Express.js - Nasıl uygulamay...
Nasıl Express/Node.js içinde bir İSTAS...
Nasıl erişim ELDE Express.js ya Node.j...
Nasıl node.js cross-origin resource sh...