• 21-03-2022, 20:23:48
    #1
    Merhaba,

    Kullanıcı girişlerini farklı bir sitede bulunan api ile kontrol etmem gerekiyor. Middleware ile bunu yapacağım ancak şöyle bir problemim var;
    Kişinin siteye ilk kez girdiğini düşünün. Elimde hangi kullanıcı olduğuna dair hiç bir bilgi yok ve api ye gönderdiğimde eşleşecek bir veri de yok.
    Tarayıcıdan diğer sitede bulunan api php ye girdiğimde kendime ait kullanıcı verilerini çekebiliyorum. Bunda sorun yok.
    Ancak middleware ile curl isteği attığımda istekler server tarafından gönderildiği için kullanıcının verilerini çekemiyorum.
    Ajax ile yaptığımda sorun yok ancak hem middleware yapmak istiyorum. Ek olarak ajax kısmında gelen giden veriyi görme ihtimali var.

    Güncelleme;
    - Ajax ile verileri alamıyorum. Uykusuzluk sebebiyle yanlış hatırlıyorum sanırım

    Nasıl bir yol izleyebilirim?

    Şimdiden teşekkürler
  • 21-03-2022, 22:44:00
    #2
    Diger siteden kullaniciya herhangi bir unique veri kaydetmeden middleware ile ulasmak zor gibi. Sunu bir kontrol edin hocam: https://github.com/fingerprintjs/fingerprintjs
    Daha sonra blade icerisinde script yonlendirmesi ile middleware'ye get ile fingerprint verisini gonderirsiniz. Benim aklima gelen bu.

    Edit: Uykusuzluktan ajax kismini gormemisim
    Ajax verilerini server tarafindan gonderip veri alabiliyorsaniz, ana sitede her bir kullanici icin unique bi slug olusturun veritabanina kaydedin (mesela user tablosu, column name: unique_slug, deger: yW7mdasdkmaO92i3jamsdKMasmdKsj gibi)
    Ben projelerimde bu sekilde kullaniyorum genelde farkli bir siteden eriseceksem. Api ile okuyabilecegim user bilgilerini aliyorum sadece.

    public function random_strings($length_of_string) {
        $str_result = '0123456789abcdefghijklmnopqrstuvwxyz';
        return substr(str_shuffle($str_result), 0, $length_of_string);
    }
    
    $hash = $this->random_strings(30); // cikti : yW7mdasdkmaO92i3jamsdKMasmdKsj
  • 21-03-2022, 23:07:17
    #3
    T1mSaH adlı üyeden alıntı: mesajı görüntüle
    Diger siteden kullaniciya herhangi bir unique veri kaydetmeden middleware ile ulasmak zor gibi. Sunu bir kontrol edin hocam: https://github.com/fingerprintjs/fingerprintjs
    Daha sonra blade icerisinde script yonlendirmesi ile middleware'ye get ile fingerprint verisini gonderirsiniz. Benim aklima gelen bu.
    Maalesef hocam sonuç alamadım. IPS Forum sistemi kullandığım bir site var. Yapmak istediğim kabaca forumda giriş yapmış kullanıcıyı yeni yaptığım sitede X bir şekilde giriş yaptırmak. Kullanıcı adı ve şifreyi forum veritabanından kontrol ettirebilirim ancak çok sağlıklı bir yöntem değil. API ile yapmaya çalıştım ancak bir türlü giriş yapmış kullanıcı verisini alamadım. Forum sitesinde bir php oluşturdum ve o php ye tarayıcıdan giriş yaptığımda kendi verilerimi görebiliyorum. Hâlâ araştırıyorum ama bir çözüm bulamadım. Son çare veritabanına yöneleceğim
  • 21-03-2022, 23:09:49
    #4
    T1mSaH adlı üyeden alıntı: mesajı görüntüle
    Diger siteden kullaniciya herhangi bir unique veri kaydetmeden middleware ile ulasmak zor gibi. Sunu bir kontrol edin hocam: https://github.com/fingerprintjs/fingerprintjs
    Daha sonra blade icerisinde script yonlendirmesi ile middleware'ye get ile fingerprint verisini gonderirsiniz. Benim aklima gelen bu.

    Edit: Uykusuzluktan ajax kismini gormemisim
    Ajax verilerini server tarafindan gonderip veri alabiliyorsaniz, ana sitede her bir kullanici icin unique bi slug olusturun veritabanina kaydedin (mesela user tablosu, column name: unique_slug, deger: yW7mdasdkmaO92i3jamsdKMasmdKsj gibi)
    Ben projelerimde bu sekilde kullaniyorum genelde farkli bir siteden eriseceksem. Api ile okuyabilecegim user bilgilerini aliyorum sadece.

    public function random_strings($length_of_string) {
        $str_result = '0123456789abcdefghijklmnopqrstuvwxyz';
        return substr(str_shuffle($str_result), 0, $length_of_string);
    }
    
    $hash = $this->random_strings(30); // cikti : yW7mdasdkmaO92i3jamsdKMasmdKsj
    Teşekkür ederim ancak şimdi kontrol ettim ve AJAX nedense sonuç döndürmüyor. Daha önce laravel ile değil salt php ile denediğimde alıyorum diye hatırlıyorum. Yanlış hatırlıyorum sanırım çünkü ben de aynı durumdayım. Uykusuzluktan beyin durdu
  • 21-03-2022, 23:29:34
    #5
    Muhtemelen cozum postMessage. Aklima localStorage geldi ama cross domain muhtemelen kullanamazsin. Forum domain ve kullanacagin domain farkli mi?
    Eger farkliysa postMessage ile halledebilirsin. Daha once kullanmadim fakat kesin cozum gibi.
    https://stackoverflow.com/questions/...across-domains
    https://developer.mozilla.org/en-US/...ow/postMessage
  • 21-03-2022, 23:34:32
    #6
    T1mSaH adlı üyeden alıntı: mesajı görüntüle
    Muhtemelen cozum postMessage. Aklima localStorage geldi ama cross domain muhtemelen kullanamazsin. Forum domain ve kullanacagin domain farkli mi?
    Eger farkliysa postMessage ile halledebilirsin. Daha once kullanmadim fakat kesin cozum gibi.
    https://stackoverflow.com/questions/...across-domains
    https://developer.mozilla.org/en-US/...ow/postMessage
    Aynı domain ama yeni yaptığım proje subdomainde çalışacak. Şu an localde çalışıyorum. Kontrol ediyorum şimdi bu linkleri
  • 21-03-2022, 23:47:48
    #7
    Bi yontem daha
    Ayni domain olmasi iyiymis.
    document.cookie = "LoggedIn=Yes;userMail=user@user.com;domain=.DOMAIN.com"
    Bu cookie'yi DOMAIN.com 'a ait tum subdomainlerde okuyabilirsin. Tek yapman gereken forum sitesinde giris yapmis kullaniciya bunu tanimlamak.
    Kullanicinin kendi bilgilerini kaydedecegin icin guvenlik acigi olmaz diye dusunuyorum.
  • 22-03-2022, 15:46:11
    #8
    T1mSaH adlı üyeden alıntı: mesajı görüntüle
    Bi yontem daha
    Ayni domain olmasi iyiymis.
    document.cookie = "LoggedIn=Yes;userMail=user@user.com;domain=.DOMAIN.com"
    Bu cookie'yi DOMAIN.com 'a ait tum subdomainlerde okuyabilirsin. Tek yapman gereken forum sitesinde giris yapmis kullaniciya bunu tanimlamak.
    Kullanicinin kendi bilgilerini kaydedecegin icin guvenlik acigi olmaz diye dusunuyorum.
    Forum sistemi kullanıcıya ait bazı verileri cookieye kayıt ediyor ama güvenmiyorum o kısma.
    Uykudan uyanınca aklıma şu geldi;
    Yeni projede giriş yapılmış mı diye sessiondan kontrol ediyorum. Giriş yapılmamışsa forum ile aynı dizinde bulunan php dosyasına yönlendiriyorum.
    O php dosyasında zaten foruma giriş yapmış mı vs hepsini görebildiğim için verileri yeni projeye post ile gönderiyorum.
    Post kısmına token, request ip vs ekledim. Giden datayı şifreliyorum proje de tekrar çözüp kullanıyorum.
    Şu an gayet temiz bir çözüm oldu diye düşünüyorum açıkçası. İlk kez laravel projesi yapıyorum ama şimdiden baya hoşuma gitti.

    Yardımlarınız için çok teşekkürler tekrardan