Giriş yapmadınız.

Duyuru

TÜRKÇE KİTAP DUYURUSU:
Laravel 5 : Laravel 5.1 Güzelliği (Türkçe)
Vue.js 2 : Vue.js 2 Majesteleri (Türkçe)

#1 04.05.2018 13:25:19

alihankoc
Üye
Kayıtlı: 14.09.2017
Mesajlar: 29

VueJS uygulamasında izin ve rol yönetimi!

Merhaba arkadaşlar.
Ufak bir sorum olacak.

Bir vuejs uygulamasında auth olmuş bir kullanıcının rol ve izinlerini nasıl kullanmak daha doğru bir yöntemdir.
Biraz açıklayacak olursak;
Api bize kullanıcının rol ve izinlerini sağlıyor, bu izinleri vue ye login olurken bir kere çekip vuex gibi biryerde tutup daha sonra vue içinde bir işlem için izin var mı yok mu diye buradan bakmak mı daha doğrudur yoksa her işlemde izinleri api'den sormak mı daha doğrudur.

İkisinin de dezavantajları var.
Her seferinde api'den sormak ciddi bir maliyet.
Bir kere baştan çekmek konusunda da endişeliyim, sonuçta client tarafında saklanacak olan birşey ve manipüle edilebilir. Ayrıca kullanıcı login olduktan sonra bu kullanıcının yetkileri başka bir yönetici tarafından değiştirilirse bu kullanıcının önceki rolleri saklandığı için istenmeyen sonuçlar doğurabilir.

Siz bu tür bir durumda nasıl hareket ederdiniz?

Ben şu an vuex te tutuyorum. Kullanıcının rolleri değişirse api durumu redis e publish yapıyor, Redisi dinleyen node uygulaması da websocket aracılığı ile vue uygulamasını bilgilendiriyor ve gerekli yerleri değiştiriyor. Bu bir çözüm ama doğru olup olmadığı konusunda endişeliyim.

Son düzenleyen alihankoc (04.05.2018 13:29:03)

Çevrimdışı

#2 08.05.2018 08:26:04

alihankoc
Üye
Kayıtlı: 14.09.2017
Mesajlar: 29

Yanıt: VueJS uygulamasında izin ve rol yönetimi!

Bu forumda sorduğum sorular genelde yanıtsız kalıyor saçma sorular mı soruyorum acaba. big_smile

Vuex teki sctrict mode, içindeki verinin manipüle edilmesini çok çok zorlaştırıyor. (Hiçbirşey imkansız değil diye düşünüyorum) dolayısıyla kullanıcın erişmesinin zor olduğu bir yerde tutup anlık güncellemeleri de uygulalayabildiğim için ve daha iyi bir fikir çıkmadığı için mevcut kullandığım yöntemin doğru olduğuna karar verdim.

İhtiyacı olan biri olursa;
Api den vue ye login olurken user datası ile birlikte rol ve izinlerini de çekiyorum. Vuex te tutuyorum. Önyüzde erişmesinin yasak olduğu sayfa veya metodları buradan belirleyip izin veriyor yada vermiyorum. Tabii uyanık ve bilgili bir kullanıcı bu duvarı aşarsa api tarafında ikinci bir kontrol tabii ki var.

Çoğu yerde ihtiyaç duyulmaz ama benim müşterim ısrarla istediği için yaptım. Bir kullanıcı login olduktan sonra onun herhangi bir bilgisi değişirse; örneğin  görüntülememesi gereken bir sayfadayken bu sayfaya erişimi kapatılırsa o an sayfayı yenilemesine gerek kalmadan yada yeniden login olmasına gerek kalmadan çat diye sayfasını 403 e çevirmek için  bu şekilde login olmuş kullanıxıya anlık olayları yaşatmak için şu adımları izledim.

Apideki tüm metodların sonucu return edilmeden önce belirli anlaşılabilir mesaj objeleri oluşturup redis te publish ettim. Redis te publish edilen objeyi bir node js uygulamasında subscribe ederek dinledim. Dinlediğim mesajlardaki objeyi parçaladım ve mantıklı bir ifade olan mesajın hangi rotadan geldiğini, bu konuda hangi kullanıcıların bilgilendirilmesi gerektiğini kimlere işlem yapılacağını ve işlemi anladım. Sonra socket io ile ilgili socketlere mesajı yada işlemi emit ettim. Vue uygulamasında socketi dinlerken eğer uygulamanın açık olduğu sırada ilgili kullanıcı ile ilgili bir durum varsa ne gerekiyorsa yaptım çünkü mesajda uygulamanın ne yapması gerektiğine dair tüm bilgiler var.

İşi biraz uzatmışız gibi görünüyor ama tamamen kendi sunucumuz içinde pusher gibi dışarıdan hizmet almadan çözdük. Nodejs asenkron çalışabildiği için log işlemini de buradan yaptık, mongo db ye loglama yaptık. Böylece api yi de log zahmetinden kurtarmış olduk.

Herkese iyi forumlar. smile

Son düzenleyen alihankoc (08.05.2018 08:59:55)

Çevrimdışı

#3 10.05.2018 08:24:47

evrend
Üye
Yer: DÜZCE
Kayıtlı: 26.05.2014
Mesajlar: 347
Website

Yanıt: VueJS uygulamasında izin ve rol yönetimi!

Alihan kendi sorunu yanıtlamışsın, teşekkürler smile Böyle spesifik konularda yorum yapmak için bazen proje ile alakalı detaylı bilgi gerekebiliyor. Biz konuyu zaten seninle konuşmuştuk ama ihtiyacı olan birileri olursa, mesajın yönlendirici olacaktır.


Unutmayın, HERKOD aynı değildir.
Fiyat/Performans Cloud için: Digital Ocean.
Ayda 2,5$'a 512Mb ram, 1Core CPU Cloud için: Vultr.

Çevrimdışı

#4 10.05.2018 08:54:42

alihankoc
Üye
Kayıtlı: 14.09.2017
Mesajlar: 29

Yanıt: VueJS uygulamasında izin ve rol yönetimi!

Evren;
Sitemli bir şekilde söylemedim zaten gülerek esprili bir cevap verdim biraz muhabbet oluşsun diye. Sen katıldın muhabbete teşekkür ederim. big_smile

Evet yönlendirici olması için paylaştım umarım birilerine faydası dokunur. big_smile

Çevrimdışı

#5 10.05.2018 09:05:36

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 1,090
Website

Yanıt: VueJS uygulamasında izin ve rol yönetimi!

Merhaba,

Ben Vue kullanmadığım için cevap yazamadım ama sorular genelde yanıtsız kalıyor saçma sorular mı soruyorum dediğiniz için yazma gereği hissettim. Burada daha çok Laravel ve PHP soruları ağırlıkta yanıtlanıyor, Vue diye aktif olmayan bir bölümümüz de var ama olma sebebi de Laravel'in frontend ile ilgili olarak Vue'ye küçük bir destek vermesi. Konu daha çok Frontend/Javascript ile ilgili bir konu olduğu için burada bu tür soruların yanıtlanması biraz zor olacaktır.

Kendi sorunuza yanıt verdiğiniz için ayrıca teşekkürler. Belki birine yardımcı olur.

Çevrimiçi

#6 10.05.2018 09:31:38

alihankoc
Üye
Kayıtlı: 14.09.2017
Mesajlar: 29

Yanıt: VueJS uygulamasında izin ve rol yönetimi!

mgsmus yazdı:

Merhaba,

Ben Vue kullanmadığım için cevap yazamadım ama sorular genelde yanıtsız kalıyor saçma sorular mı soruyorum dediğiniz için yazma gereği hissettim. Burada daha çok Laravel ve PHP soruları ağırlıkta yanıtlanıyor, Vue diye aktif olmayan bir bölümümüz de var ama olma sebebi de Laravel'in frontend ile ilgili olarak Vue'ye küçük bir destek vermesi. Konu daha çok Frontend/Javascript ile ilgili bir konu olduğu için burada bu tür soruların yanıtlanması biraz zor olacaktır.

Kendi sorunuza yanıt verdiğiniz için ayrıca teşekkürler. Belki birine yardımcı olur.

Gerçekten kötü bir amaçla söylemedim, yanlış bir mesaj verdiysem özür dilerim tüm forum halkından. Forumdaki nezih ve kaliteli ortamdan kuşkum yok sadece olaya esprili yaklaşmak istedim. Ben de teşekkür ederim. smile

Çevrimdışı

#7 10.05.2018 10:12:54

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 1,090
Website

Yanıt: VueJS uygulamasında izin ve rol yönetimi!

Kötü bir amaçla söylemediğinizin farkındayım, sorun yok, siz Evren'e cevap verirken ben yazmışım bunu o yüzden sizin Evren'e verdiğiniz cevaptan sonra gelince sanki ben de olaya çok ciddi yaklaşmışım gibi bir hava oluştu smile

Çevrimiçi

Forum alt kısmı