• 04-07-2024, 20:57:59
    #1
    Selam.. Basit bir mobil uygulamam var, login key ile giriş yapılıyor. Fakat tek cihaza tanımlı olmasını istedim. 2. Cihazla giriş yapıldığı anda hesap banlanıyor. Bu sefer de şöyle bir sorun çıkıyor, ekran her açıldığında hesabın aktifliğinin sorgulanması gerek. 2-3 bin kişi, kişi başı 30 kez tıklasalar günde çok çok fazla sorgu olmuş oluyor.

    Bunun mantığı nedir? Doğrulama işini ne ile sağlıyorsunuz? Cookieler aklıma geliyor fakat yine aynı olay olacak. Uygulamadaki veriler sunucudan düşmüyor. Sadece hesabın aktiflik ve ban durumu sunucudan çekiliyor.
  • 04-07-2024, 21:14:46
    #2
    Win
    🌟🚀📚Yazılım Tutkunu💡💻
    Merhaba,

    Kullanıcınız birden fazla cihazla giriş yapamama veya eş zamanlı maksimum 1 oturum durumları gibi hedeflediğiniz eyleme göre bir senaryo belirlemelisiniz.

    Her durumun avantajı ve dezavantajlarını düşünerek ilerleyin, kullanıcının cihazı hakkında bilgiler edinin (agent, ekran boyutu,dil gibi) bu aksiyonlar'a göre bir token oluşturma yapısı oluşturarak müşterinize ait aktif cihazı belirlemiş olursunuz sonraki login olacak kişi bunları desteklemiyorsa oturum başlamaz veya kullanıcı banlanarak session öldürülebilir.

    Aktif oturum kontrolleri için sağladıgınız session veya tokene ait expire değerini baz alabilirsiniz, yada heartbeat dediğimiz olay ile belli aralıklarla sunucuya sinyal göndererek ilgili kullanıcının oturumunu denetlersiniz, bu denetime göre yeni login olacaksa yine sorgunuz net cevap verir.

    Sunucu üzerinde ilgili session ile alakalı süregelen kullanıma bağlı kontrolde yaptırmanız mümkün, liste uzayıp gider.

    İlgili aksiyonlarda, doğrudan MySQL ile ilişkilendirmek yerine bu tip aksiyonları redis veya memcache türevleri ile memory-caching felsefesini konuşturabilirsiniz bu sayede belirleyeceğiniz aksiyonlara göre sorgunun devamı MySQL yerine memory üzerinden dönecektir çok seçenekli bir konu akla gelenler birkaç kelimeyle bunlar.

    Umarım yardımı olur.
  • 04-07-2024, 21:23:28
    #3
    Win adlı üyeden alıntı: mesajı görüntüle
    Merhaba,

    Kullanıcınız birden fazla cihazla giriş yapamama veya eş zamanlı maksimum 1 oturum durumları gibi hedeflediğiniz eyleme göre bir senaryo belirlemelisiniz.

    Her durumun avantajı ve dezavantajlarını düşünerek ilerleyin, kullanıcının cihazı hakkında bilgiler edinin (agent, ekran boyutu,dil gibi) bu aksiyonlar'a göre bir token oluşturma yapısı oluşturarak müşterinize ait aktif cihazı belirlemiş olursunuz sonraki login olacak kişi bunları desteklemiyorsa oturum başlamaz veya kullanıcı banlanarak session öldürülebilir.

    Aktif oturum kontrolleri için sağladıgınız session veya tokene ait expire değerini baz alabilirsiniz, yada heartbeat dediğimiz olay ile belli aralıklarla sunucuya sinyal göndererek ilgili kullanıcının oturumunu denetlersiniz, bu denetime göre yeni login olacaksa yine sorgunuz net cevap verir.

    Sunucu üzerinde ilgili session ile alakalı süregelen kullanıma bağlı kontrolde yaptırmanız mümkün, liste uzayıp gider.

    İlgili aksiyonlarda, doğrudan MySQL ile ilişkilendirmek yerine bu tip aksiyonları redis veya memcache türevleri ile memory-caching felsefesini konuşturabilirsiniz bu sayede belirleyeceğiniz aksiyonlara göre sorgunun devamı MySQL yerine memory üzerinden dönecektir çok seçenekli bir konu akla gelenler birkaç kelimeyle bunlar.

    Umarım yardımı olur.

    Öncelikle yanıtınız için çok teşekkür ederim. Aslında yapı itibariyle çok basit. Kontrol için, sadece login key, ve android için çalıştığından cihaz id'sini alıp kontrol ediyor. Fakat giriş bir kez yapıldığı için, uygulamanın ana ekranı her açıldığında banlanma durumunu kontrol etmesi gerekiyor. Örneğin a kullanıcısı, hesabını b kullanıcısıyla paylaştı. Bu durumda a kullanıcısının cihazı ve hesabı banlanıyor. Fakat a kullanıcısı tekrar giriş yapmayacağı için uygulamayı kullanırken ban durumu kontrol edilip çıkış yapması gerekiyor. Dediklerinize aslında pek uzak sayılırım. Fakat mantığı bir türlü kafamda oturtamıyorum. Binlerce kullanıcı, her ana sayfaya tıklanışta kontrol. Bu da doğal olarak hangi sistem kullanılırsa kullanılsın çok fazla sorgu anlamına geliyor. Acaba sorgu sayısı bana fazla geliyor da yapıya göre normal mi onu da bilmiyorum.
  • 04-07-2024, 22:23:42
    #4
    Win
    🌟🚀📚Yazılım Tutkunu💡💻
    iskenderbuyuk34 adlı üyeden alıntı: mesajı görüntüle
    Öncelikle yanıtınız için çok teşekkür ederim. Aslında yapı itibariyle çok basit. Kontrol için, sadece login key, ve android için çalıştığından cihaz id'sini alıp kontrol ediyor. Fakat giriş bir kez yapıldığı için, uygulamanın ana ekranı her açıldığında banlanma durumunu kontrol etmesi gerekiyor. Örneğin a kullanıcısı, hesabını b kullanıcısıyla paylaştı. Bu durumda a kullanıcısının cihazı ve hesabı banlanıyor. Fakat a kullanıcısı tekrar giriş yapmayacağı için uygulamayı kullanırken ban durumu kontrol edilip çıkış yapması gerekiyor. Dediklerinize aslında pek uzak sayılırım. Fakat mantığı bir türlü kafamda oturtamıyorum. Binlerce kullanıcı, her ana sayfaya tıklanışta kontrol. Bu da doğal olarak hangi sistem kullanılırsa kullanılsın çok fazla sorgu anlamına geliyor. Acaba sorgu sayısı bana fazla geliyor da yapıya göre normal mi onu da bilmiyorum.
    Sorgu sayınının bir önemi yok, bahsettiğim heartbeat eylemini deneyebilirsiniz, redis veya memcache ile sorgunuzu MySQL den çekin ve uygulama içi bi local storage ile nosql hedeflemenizi öneririm.