Web uygulamanızın kullanıcıları "hatırlaması" gerektiğinde, genellikle iki mekanizmadan birini kullanır: çerezler veya oturumlar. Çerez, tarayıcıda örneğin arama tercihleri ​​gibi kullanıcıyla ilgili verileri tutabileceğiniz küçük bir depolama alanıdır. Oturumlar, bunun yerine hassas bilgileri sunucuda depolamanıza izin verir.

Node.js tarafından desteklenen bir Ekspres sunucuda oturumları nasıl ayarlayacağınızı keşfedin.

Neye ihtiyacınız olacak

Bu öğreticiyi takip etmek için hem Node.js hem de npm kurulu olmalıdır. Herhangi bir yeni sürümü Node.js ile gelmeli npm, bağımlılıkları yüklemek için bir paket yöneticisi.

Hızlı ve hızlı oturumu kurmak için npm kullanacaksınız. Bunlar, web sunucusunu ve oturumu oluşturmak için kullanacağınız araçlardır.

Node.js'de Oturum Nedir?

Çerez, tarayıcınızın verileri depolamak için kullandığı küçük bir dosyadır.. Arama tercihleri ​​gibi hassas olmayan verileri saklamak için çerezleri kullanabilirsiniz.

Hassas verileri (kullanıcı adları ve şifreler gibi) çerezlerde saklamamalısınız. Tarayıcınız HTTP üzerinden tanımlama bilgileri gönderdiğinde, bunları engelleyebilecek bilgisayar korsanlarına karşı savunmasızdır. Ayrıca bilgisayarınızda düz metin olarak saklanırlar, böylece bilgisayar korsanları potansiyel olarak onları inceleyebilir ve verilerinizi çalabilir.

instagram viewer

Hassas verileri istemcide çerez olarak kaydetmek yerine, sunucuda saklamanız gerekir. Bu onu dış dünyadan korur.

Oturumlar, uygulamanızın kullanıcıyı tanımlamak için ihtiyaç duyduğu hassas verileri depolamanıza olanak tanır. Örnekler, kullanıcı adı, şifre ve e-postadır. İstemcide değil sunucuda yaşadıkları için daha güvenlidirler.

İstekler arasında kalıcı olmasını istediğiniz verileriniz olduğunda, bunları bir oturum kullanarak sunucu tarafında kaydedin. Aşağıdaki bölümde oturum oluşturmayı öğreneceksiniz.

Ekspres Sunucuda Oturum Oluşturma

Express, Node.js için popüler bir web çerçevesidir. Seçtiğiniz bağlantı noktası numarasında istemci isteklerini dinleyen bir web sunucusu uygulaması kurmanıza olanak tanır. Çerçeve tarafından sağlanan API'ler sayesinde API yolları oluşturabilir, ara yazılım uygulayabilir ve hatta uygulamayı bir veritabanına bağlayabilirsiniz.

1. Bir Node.js Projesi Oluşturun

Projeniz için yepyeni bir klasör oluşturun, ardından komut satırı aracınızı ve cd'yi bu klasöre başlatın.

Ardından, bir Node.js projesini başlatmak için aşağıdaki komutu çalıştırın:

npm başlatma -y

Bu, projenin kök klasöründe varsayılan kurulumla birlikte bir package.json dosyası oluşturur. Çalıştırmak için package.json dosyası npm betikleri.

2. Ekspres ve hızlı oturumu yükleyin

Web sunucusu uygulamasını oluşturmak için Express'i kullanacaksınız. Ve bu sunucu uygulamasında oturumlar oluşturmak için hızlı oturum.

Terminalde, her iki bağımlılığı da kurmak için aşağıdaki komutu çalıştırın:

npm i ekspres oturumu ifade eder

Her iki paketi de kurduktan sonra, bir sonraki adım sunucuyu oluşturmak olacaktır.

3. Uygulamada Oturumlar Oluşturun

Projenizin kök klasöründe App.js adlı bir dosya oluşturun ve bağımlılıkları içe aktarın:

sabit ifade = gerekmek('ifade etmek')
sabit oturum = gerekmek('ekspres oturum')
uygulama = ekspres()

Ardından, oturum ara yazılımını kaydedin. ile bir nesneyi geçirin gizli özelliği (sessionID çerezini imzalamak için) ve çerez.

uygulama.kullan(
oturum({
gizli: "bazı sırlar",
kurabiye: { maxYaş: 30000 },
saveUninitialized: YANLIŞ,
})
);

Burada oturumun en büyük yaşını 30 saniye olarak ayarlarsınız (30000 milisaniye). Bir oturum açma sisteminiz varsa saveUnitialized öğesini false olarak ayarlamak çok önemlidir. Bunu yapmazsanız, kullanıcı her istek gönderdiğinde sunucunuz yeni bir sessionID oluşturur.

Ardından, oturumu değiştirmek için bir oturum açma yolu oluşturun. Bir kullanıcı bu rotaya ulaştığında, istemcinin istek gövdesinde kullanıcı adını ve parolayı göndermesini beklersiniz. İlk olarak, bu değerlere erişir ve var olup olmadıklarını (ve kullanıcının kimliğini doğrulayıp doğrulamadığını) kontrol edersiniz:

uygulama.post("/giriş yapmak", (gerekli, res) => {
sabit { kullanıcı adı, şifre } = req.body;

eğer (Kullanıcı adı Şifre) {
eğer (req.session.authenticated) {
res.json (oturum);
} başka {
eğer (şifre "123") {
req.session.authenticated = doğru;
req.session.user = { kullanıcı adı };
res.json (gerekli oturum);
} başka {
res.status(403).json({ mesaj: "Kötü kimlik" });
}
}
} başka {
res.status(403).json({ mesaj: "Kötü kimlik" });
}
});

İlk if ifadesiyle, sahte bir kontrol gerçekleştirirsiniz. Bu kontrol, yalnızca kullanıcı adı ve parola mevcutsa devam etmenizi sağlamak içindir.

Ardından, kullanıcının kimliğinin zaten doğrulanıp doğrulanmadığını kontrol edersiniz. Öyleyse, oturumu istemciye geri gönderin. Değilse, kimliği doğrulanmış özelliği true olarak ayarlayın ve kullanıcı adını oturuma kaydedin. Ardından müşteriye geri gönderin.

Yukarıdaki kod ile sunucu, sunucuya istek gönderen her kullanıcıyı hatırlayacaktır. Bunun nedeni, kimlik doğrulaması yapmış olmaları ve benzersiz ayrıntılarını (kullanıcı adı ve parola) oturuma kaydetmiş olmalarıdır.

App.js'nin altına aşağıdaki kodu ekleyerek sunucunuzu başlatın:

uygula.dinle(3000, () => {
konsol.kayıt("Sunucu 3000 numaralı bağlantı noktasında çalışıyor");
});

Bu yolu test etmek için, oluşturduğunuz oturum açma yoluna bir istek göndermek için bir API istemcisi kullanın. İsteğin gövdesinde kullanıcı adını ve şifreyi gönderdiğinizden emin olun. Rest Client kullanıyorsanız API isteğiniz şu şekilde görünür:

GÖNDERİ http://yerel ana bilgisayar: 3000/giriş HTTP/1.1
İçerik türü: "uygulama/json"
{ Kullanıcı adı: "Kingsley", şifre: "123"}

Her şey yolunda giderse, aşağıdaki nesneyi elde edersiniz:

{
"kurabiye": {
"orijinalMaxAge": 30000,
"Yalnızca http": doğru,
"yol": "/"
},
"doğrulanmış": doğru,
"kullanıcı": {
"Kullanıcı adı": "Kingsley",
"şifre": "123"
}
}

Bu kodla iki şey oldu. İlk olarak, sunucuda kimlik doğrulaması yaptınız. İkincisi, oturum artık oturum açma ayrıntılarınıza sahiptir, bu nedenle sunucu artık kim olduğunuzu bilir. Yeni bir istek gönderdiğinizde, oturumun süresi dolana ve sunucu onu kaldırana kadar sizi hatırlayacaktır.

Oturumlar Kullanıcı Deneyimini İyileştirir

Oturumlar, Node.js uygulamalarının hayati bir parçasıdır. Bunun nedeni, birçok istek ve yanıt arasında bir etkileşim durumu sürdürmenize izin vermeleridir. Oturumlar, oturum açmanıza ihtiyaç duyan uygulamalar için özellikle önemlidir.

Kullanıcıya özel verileri takip etmek için arka uç uygulamanızdaki oturumları kullanın. Bu tür verilere bir örnek, kullanıcınızın bir alışveriş sepetine eklediği öğelerdir.

Oturumlar olmadan, uygulamanızdaki her kullanıcı için ayrı bir veri deposu bulundurmanız gerekir. Bu verimsiz olur ve uygulamanın karmaşıklığını artırır.

Express.js Oturumları, Yönlendirmeyi ve Daha Fazlasını Basitleştirir

Express.js, şu anda kullanımda olan en popüler Node.js web çerçevesidir. Arka uç uygulamaları oluşturmak için birçok araç ve kitaplık sağlar ve hızlı oturum kitaplığı bunlardan yalnızca biridir.

Arka uç web geliştirme için Node.js kullanmak istiyorsanız Express'i inceleyin.