Mongo - Express-React-Node (MERN)
-
NighT_JudGe bunu yazdı
lazım olan olur diyerekten şuraya bırakayım
https://github.com/Tuncaysukan/Netfilx_Clone
eline sağlık hocam
gene kodlarınızı ıncelıyordum
const verify = require("../verifyToken");su kodunuzun calısma mantıgı nedırorada oyle bır dosyada bulamadım ıncelmek ıcın -
lazz bunu yazdıNighT_JudGe bunu yazdı
lazım olan olur diyerekten şuraya bırakayım
https://github.com/Tuncaysukan/Netfilx_Clone
eline sağlık hocam
gene kodlarınızı ıncelıyordum
const verify = require("../verifyToken");su kodunuzun calısma mantıgı nedırorada oyle bır dosyada bulamadım ıncelmek ıcınson değişiklikleri push etmemişim hocam kusura bakma şimdi attım
-
tesekkur ederım hocam guzel kaynak olusuyor banada
baska bu tarzda projeler varsa paylasırsan sevınırım hocam
bir soru daha sormak ısterım ustadlara
jwt kullandıgımız zaman verdıgımız key suresı dolana kadar calısıyor ama mevcut kullanılan hesabın durumu devre dısı bırakırsak jwt bundan etkılenmıyor.
bu yüzden her sorguda hesabın bılgılerını kontrol edıyorum sıfresı ve durumu aktıfmı dıye
bunun daha kolay veya daha orjınal bır yolu varmı
lazz tarafından 16/Ağu/21 15:18 tarihinde düzenlenmiştir -
lazz bunu yazdı
tesekkur ederım hocam guzel kaynak olusuyor banada
baska bu tarzda projeler varsa paylasırsan sevınırım hocam
bir soru daha sormak ısterım ustadlara
jwt kullandıgımız zaman verdıgımız key suresı dolana kadar calısıyor ama mevcut kullanılan hesabın durumu devre dısı bırakırsak jwt bundan etkılenmıyor.
bu yüzden her sorguda hesabın bılgılerını kontrol edıyorum sıfresı ve durumu aktıfmı dıye
bunun daha kolay veya daha orjınal bır yolu varmı
Hocam 5-6 ay öncesinde test maksatlı yaptığım bir sistemin reposunu vereyim. Kodlar çok ideal durumda değil, sağlam bir refactoring gerekiyor. Çok üzerinde durmadım ama teknikler mantıken işine yarar diye umuyorum.
https://github.com/gakalin/whatsapp-clone
Jwt konusuna gelecek olursak, her jwt token 3 parçadan oluşur. Header, payload ve signature. Header kullanılan algoritmayı taşır. Payload eğer girildiyse bitiş süresi, içine konan data gibi verileri saklar. Signature ise verify kısmında basitçe kullanılacak keylerin bir kombinasyonunu barındırır.
Hesabın durumunu jwt üzerinden kontrol edemezsin. Jwt token'ı basitçe user ile sunucun arasındaki bir sözleşme gibi düşün. İmzalar uyuyorsa, senin sunucun tarafından imzalandıysa geçerliliği olsun diye kullanılıyor.
Anca payload kısmına hassas olmayan kullanıcı bilgilerini koyup ayrı bir mekanizma ile kullanıcı aktif mi diye bakabilirsin. Misal user id tutulabilir. Hassas bilgi tutmanı şundan önermiyorlar, jwt token'lar decode edilebilir. Yani içine koyduğun datalar doğrudan https://jwt.io/ adresinden decode edilebiliyor. Sen api ya da servisinde tokenden gelen id değeriyle backend'de user'ın durumunu kontrol ettirip ona göre olumlu olumsuz yanıt döndürebilirsin. Jwt token verify edilemezse ya hatalıdır ya da süresi bitmiştir. Ama verify ediliyorsa sana zaten payload datasını döndürecektir. Payload'dan alacağın user id gibi bilgileri de artık hangi işlemi yapmak istiyorsan ona göre kontrol ettirmen gerekiyor.
2. bir yöntem ise, diyelim kullanıcıyı banladın tekrar token geçerli olmasın istiyorsun. Veritabanında tokenleri saklayıp banlanma esnasında token'i database'den sildirebilirsin. Eğer girilen token db'de yoksa hiç login ettirmezsin. Zaten ileri düzey bir kontrol için bu gerekli. User'a sadece token vermek güvenliği düşüren bir etmen. Sonuçta o token'ı alıp postman dahil herhangi bir yerden sistemine erişim sağlayabilirler. Basit bir Refresh token - Access token mekanizması da oluşturabilirsin.
-
antichrist bunu yazdılazz bunu yazdı
tesekkur ederım hocam guzel kaynak olusuyor banada
baska bu tarzda projeler varsa paylasırsan sevınırım hocam
bir soru daha sormak ısterım ustadlara
jwt kullandıgımız zaman verdıgımız key suresı dolana kadar calısıyor ama mevcut kullanılan hesabın durumu devre dısı bırakırsak jwt bundan etkılenmıyor.
bu yüzden her sorguda hesabın bılgılerını kontrol edıyorum sıfresı ve durumu aktıfmı dıye
bunun daha kolay veya daha orjınal bır yolu varmı
Hocam 5-6 ay öncesinde test maksatlı yaptığım bir sistemin reposunu vereyim. Kodlar çok ideal durumda değil, sağlam bir refactoring gerekiyor. Çok üzerinde durmadım ama teknikler mantıken işine yarar diye umuyorum.
https://github.com/gakalin/whatsapp-clone
Jwt konusuna gelecek olursak, her jwt token 3 parçadan oluşur. Header, payload ve signature. Header kullanılan algoritmayı taşır. Payload eğer girildiyse bitiş süresi, içine konan data gibi verileri saklar. Signature ise verify kısmında basitçe kullanılacak keylerin bir kombinasyonunu barındırır.
Hesabın durumunu jwt üzerinden kontrol edemezsin. Jwt token'ı basitçe user ile sunucun arasındaki bir sözleşme gibi düşün. İmzalar uyuyorsa, senin sunucun tarafından imzalandıysa geçerliliği olsun diye kullanılıyor.
Anca payload kısmına hassas olmayan kullanıcı bilgilerini koyup ayrı bir mekanizma ile kullanıcı aktif mi diye bakabilirsin. Misal user id tutulabilir. Hassas bilgi tutmanı şundan önermiyorlar, jwt token'lar decode edilebilir. Yani içine koyduğun datalar doğrudan https://jwt.io/ adresinden decode edilebiliyor. Sen api ya da servisinde tokenden gelen id değeriyle backend'de user'ın durumunu kontrol ettirip ona göre olumlu olumsuz yanıt döndürebilirsin. Jwt token verify edilemezse ya hatalıdır ya da süresi bitmiştir. Ama verify ediliyorsa sana zaten payload datasını döndürecektir. Payload'dan alacağın user id gibi bilgileri de artık hangi işlemi yapmak istiyorsan ona göre kontrol ettirmen gerekiyor.
2. bir yöntem ise, diyelim kullanıcıyı banladın tekrar token geçerli olmasın istiyorsun. Veritabanında tokenleri saklayıp banlanma esnasında token'i database'den sildirebilirsin. Eğer girilen token db'de yoksa hiç login ettirmezsin. Zaten ileri düzey bir kontrol için bu gerekli. User'a sadece token vermek güvenliği düşüren bir etmen. Sonuçta o token'ı alıp postman dahil herhangi bir yerden sistemine erişim sağlayabilirler. Basit bir Refresh token - Access token mekanizması da oluşturabilirsin.
hocam çoko güzel özetlemişsin bende bunun için makale gibi bir şey yazıyordum :) ama gerek kalmadı
-
antichrist bunu yazdılazz bunu yazdı
jwt kullandıgımız zaman verdıgımız key suresı dolana kadar calısıyor ama mevcut kullanılan hesabın durumu devre dısı bırakırsak jwt bundan etkılenmıyor.
bu yüzden her sorguda hesabın bılgılerını kontrol edıyorum sıfresı ve durumu aktıfmı dıye
bunun daha kolay veya daha orjınal bır yolu varmı
Hocam 5-6 ay öncesinde test maksatlı yaptığım bir sistemin reposunu vereyim. Kodlar çok ideal durumda değil, sağlam bir refactoring gerekiyor. Çok üzerinde durmadım ama teknikler mantıken işine yarar diye umuyorum.
https://github.com/gakalin/whatsapp-clone
Jwt konusuna gelecek olursak, her jwt token 3 parçadan oluşur. Header, payload ve signature. Header kullanılan algoritmayı taşır. Payload eğer girildiyse bitiş süresi, içine konan data gibi verileri saklar. Signature ise verify kısmında basitçe kullanılacak keylerin bir kombinasyonunu barındırır.
Hesabın durumunu jwt üzerinden kontrol edemezsin. Jwt token'ı basitçe user ile sunucun arasındaki bir sözleşme gibi düşün. İmzalar uyuyorsa, senin sunucun tarafından imzalandıysa geçerliliği olsun diye kullanılıyor.
Anca payload kısmına hassas olmayan kullanıcı bilgilerini koyup ayrı bir mekanizma ile kullanıcı aktif mi diye bakabilirsin. Misal user id tutulabilir. Hassas bilgi tutmanı şundan önermiyorlar, jwt token'lar decode edilebilir. Yani içine koyduğun datalar doğrudan https://jwt.io/ adresinden decode edilebiliyor. Sen api ya da servisinde tokenden gelen id değeriyle backend'de user'ın durumunu kontrol ettirip ona göre olumlu olumsuz yanıt döndürebilirsin. Jwt token verify edilemezse ya hatalıdır ya da süresi bitmiştir. Ama verify ediliyorsa sana zaten payload datasını döndürecektir. Payload'dan alacağın user id gibi bilgileri de artık hangi işlemi yapmak istiyorsan ona göre kontrol ettirmen gerekiyor.
2. bir yöntem ise, diyelim kullanıcıyı banladın tekrar token geçerli olmasın istiyorsun. Veritabanında tokenleri saklayıp banlanma esnasında token'i database'den sildirebilirsin. Eğer girilen token db'de yoksa hiç login ettirmezsin. Zaten ileri düzey bir kontrol için bu gerekli. User'a sadece token vermek güvenliği düşüren bir etmen. Sonuçta o token'ı alıp postman dahil herhangi bir yerden sistemine erişim sağlayabilirler. Basit bir Refresh token - Access token mekanizması da oluşturabilirsin.
teşekkur ederım hocam asagı yukarı boyle bır yontem kullanıyorum
jwt decode edıldıgı ıcın kullanmayı bıraktım jwt yı
onun yerıne ıstedıgım bılgılerı json cevırım aes ıle sıfrelıyorum
bu sayade verıyı phpdende gondersem, nodejsden gondersem yanı sonuca cıkıyorum ve verılerım guvende kalıyor
kodlarınıda ıncelıcem hocam
cok yararlı bır konu oldu