Koa.js - Oturumlar

HTTP durum bilgisizdir, bu nedenle bir isteği başka herhangi bir istekle ilişkilendirmek için, HTTP istekleri arasında kullanıcı verilerini depolamanın bir yoluna ihtiyacınız vardır. Çerezler ve URL parametreleri, istemci ve sunucu arasında veri aktarmanın uygun yollarıdır. Ancak, her ikisi de istemci tarafında okunabilir. Oturumlar tam olarak bu sorunu çözer. Müşteriye bir kimlik atarsınız ve bu kimliği kullanarak diğer tüm talepleri yapar. İstemciyle ilişkili bilgiler, bu kimliğe bağlı sunucuda saklanır.

Koa oturumuna ihtiyacımız olacak, bu yüzden onu kullanarak kurun -

npm install --save koa-session

Koyacağız koa-sessionara katman yazılımı yerinde. Bu örnekte, oturumları depolamak için RAM kullanacağız. Bunu asla üretim ortamlarında kullanmayın. Oturum ara yazılımı her şeyi idare eder, yani oturumu oluşturmak, oturum tanımlama bilgisini ayarlamak ve bağlam nesnesinde oturum nesnesini oluşturmak.

Aynı istemciden tekrar bir talepte bulunduğumuzda, oturum bilgilerini bizde saklayacağız (sunucu yeniden başlatılmadığı sürece). Bu oturum nesnesine daha fazla özellik ekleyebiliriz. Aşağıdaki örnekte, bir müşteri için bir görüntüleme sayacı oluşturacağız.

var session = require('koa-session');
var koa = require('koa');
var app = koa();

app.keys = ['Shh, its a secret!'];
app.use(session(app));  // Include the session middleware

app.use(function *(){
   var n = this.session.views || 0;
   this.session.views = ++n;
   
   if(n === 1)
      this.body = 'Welcome here for the first time!';
   else
      this.body = "You've visited this page " + n + " times!";
})

app.listen(3000);

Yukarıdaki kodun yaptığı şey, bir kullanıcı siteyi ziyaret ettiğinde, kullanıcı için yeni bir oturum oluşturur ve bir çerez atar. Kullanıcı bir dahaki sefer ziyaret ettiğinde, çerez kontrol edilir ve page_view oturum değişkeni buna göre güncellenir.

Şimdi uygulamayı çalıştırır ve localhost:3000, aşağıdaki yanıtı alacaksınız.

Sayfayı tekrar ziyaret ederseniz, sayfa sayacı artacaktır. Bu durumda sayfa 12 defa yenilendi.