Node.js kullanıcı giriş yaptığında yönlendirme

Merhabalar, node.js de yeniyim. Bir giriş formu oluşturdum ve input lara şifre ve usernmame girildiğinde kullanıcıyı başka bir html dosyasına post ediyorum. Ancak bu html dosyasında hangi kullanıcının giriş yaptığını nasıl anlayabilrim? Yani mesela username’i abc olan bir kişi giriş yaptığında o html dosyasına yönlendirme yapınca site bu kişinin nasıl abc olduğunu anlayabilir?

Merhaba.
Yapmanız gereken giriş yapan kullanıcının bilgilerini geçiçi olarak(session) ya da süresiz olarak(cookie) olarak depolamak ve bu verileri yeri geldiği zaman kullanmak olucaktır.

Mesela /login adresinden giriş yaptıktan sonra o kullanıcının bilgilerini şifrelenmiş bir şekilde saklayabiliriz ve yeri geldiğinde bu veriden giriş yapan kullanıcıyı bulabiliriz.

Daha detaylı bilgi için buralara bakabilirsiniz:

1 Beğeni

Bu konuyu tamamen unutmuşum özür diliyorum :slight_smile: . Sorum şu bildiğim kadarıyla console dan session storage veya loxal storage verileri değiştirilebiliyor. Eğer bu şekilde depolarsak kullanıcı bunu değiştirip başkasının hesabına giremez mi? Yoksa şifreyide mi depolayıp server a verileri iletip kontrol mğ sağlamak lazım bu noktada?

1 Beğeni

Doğru şekilde şifrelenmezse mümkün olabilir. (Örneğin kullanıcı kontrolü giriş yapan kullanıcının adı ile kontrol ediliyorsa)

Kullanıcının değiştirmemesi için server tarafında tutulması daha mantıklı olabilir ama node.js ile nasıl yapılacağı hakkında bir fikrim yok.

Örnek olması açısında ben Ruby on Rails’de geçiçi bir değişken içinde tutmuştum oradan fikir sahibi olabilirsiniz:

def login(user)
    @user = user.id
    # Bu veri ise değiştirilebilir :
    #session[:user_id] = user.id
end

Sizde bu örnekte olduğu gibi başta bir değişkene atarsanız sonradan değiştirilemez olur.

Bir diğer seçenek ise veritabanına keydetmek olabilir ama bu seferde çok fazla kullanıcı giriş yaptığında uygulamayı zorlar.

1 Beğeni

Doğru şekilde şifrelense bile bunu geçmek pekde zor olmaz bence misal sha256 ile şifreledik diyelim ki adamın bir decoder ve encoder kullanması bu engeli geçmesi konusunda baya bir yardımcı olur.

Evet sanırım socket.io ile bunu yapabilirim ancak basit bir login forumda socket kullanmak istemedim daha doğru bir çözüm olduğunu düşündüğümden buraya geldim.

evet anladım demek istediğinizi bunu daha önce socket ile yaptım az önce de dediğim gibi ancak doğru yöntem gibi gelmiyor biraz daha araştırayım ruby bilmediğim için tam anlayamadım çünkü. Aklıma bir kaç fikir geldi onları deneyeyim ben bi. Bu arada çok söyledim ama doğru mu değil mi emin olamadım bunu socket ile yapabiliyorum yapmalı mıyım doğru bir yöntem mi sizce?

1 Beğeni

Node.js için özel şifreleme kütüphaneleri varsa onları kullanabilirsiniz. O kütüphaneler normal olarak şifrelemek yerine özel anahtarlar üretip o anahtarlar üzerinde şifreledikleri için çözülmeleri çok daha zor oluyor:

1 Beğeni

Anlaşılan konu üstünde birazcık bakınmam lazım eğer gerçekten özel bir yöntemle üretiyorsa işimi görebilir ancak genede biraz bakınayım o zaman doğru yöntemi bulmak için.

1 Beğeni

Tekrardan merhabalar, sorunu çözdüm express-session isimli modül sayesinde tıpkı socket de kullandığım gibi unique bir id veriyor socket den farkı bunu cookie lere de yazıyor böylece kullanıcı kapatsa dahi tekrardan girebiliyor. Yaptığı şeyi özetlersem eğer her kullanıcı girişinde yeni bir id veriyor ancak siz kullanıcıyı onaylarsanız bu sefer idsi değişmiyor (logut işlemleri dışında logout gelirse direk req.session.destroy demeniz yeterli her şeyi siliyor). Kısacası tam olarak aradığım şeyi buldum.

1 Beğeni