• 09-04-2018, 21:21:22
    #1
    Merhabalar ;

    forumdan bazı hocalarım gazıyla api olayına adım attım ana sistemime apiyi yaptım diğer tanıtım sitemede curl yaptım ana veritabanından çok güzel veri işleyebiliyorum fakat her sayfa yenilemede login olup yeni token alıyorum bu da inanılmaz bir yavaşlama yapıyor.Siz değerli hocalarım bu api olayını nasıl yapıyorsunuz yani diyelim ki login oldum token süresi 10 saat sonra refresh edicem fakat bu süre zarfında tokenı nerde saklamalıyım nerden çekmeli token süresi dolduğunda tekrar login olurum veya refresh yaparım ama o süre zarfında ne yapmalyıım

    ufacık bir soru daha
    şimdi ben tek adreste bir çok sorguyu işliyorum örneğin /get-stock adresine istekte bulununca giden değerlere göre ifleri yapıp ona göre stockla ilgili sorguyu alıp json alıyorum fakat aynı method da neredeyse 20 tane if kontrolü var bu sıkıntı yaratır mı veya daha farklı bi çözüm öneriniz var mıdır
    teşekkürler
  • 09-04-2018, 21:44:20
    #2
    JWT konusunu araştır.
    https://www.sitepoint.com/php-author...on-web-tokens/
  • 09-04-2018, 22:34:09
    #3
    mehmetuken adlı üyeden alıntı: mesajı görüntüle


    Hocam jwt anlık token onaylamaları için diye biliyorum ben direk web sitesini apiye bağladım
  • 10-04-2018, 00:50:54
    #4
    api key kullanabilirsin direk veritabınına kişiye göre api oluştur key ve secret şeklinde onu kontrol et hiç session ile uğraşma
  • 10-04-2018, 09:22:38
    #5
    ztk
    Kimlik doğrulama veya yönetimden onay bekliyor.
    😄 cevaplar da güzel.

    hocam token süresi dolana kadar token ı localstorage gibi biryerde tutup orda varsan onu kullanman yoksa eğer yeni token alıp saklaman gerekir. her seferinde token alırsan bu apinin amacından çıkması demektir. çok saçma olur yani.

    ikincisi, bir metod yada fonksiyonda artık neyse, 20 tane if çok fazla. neyi kontrol ediyorsun bilmiyorum ama bu işe başka bir çözüm getirmen lazım.api de framework kullanıyorsan işin biraz daha kolay. fonksiyonu parçalayıp her if içindeki mantık parçalarını metodlara bölmelisin.



    sql sorguları ağırlıklı if blokları varsa bu ifleri veritabanında yapmaya çalışabilirsin. proje basit bir projeyse gerek yok ama çok sorgu alan bir api ise stored procedure ler ile if olaylarını php de değil db de yorumlayabilirsin daha hızlı ve sağlıklı olur. biraz araştırma ile bu konuları hızlıca öğrenmek mümkün.


    kolay gelsin.
  • 10-04-2018, 13:46:12
    #6
    ztk adlı üyeden alıntı: mesajı görüntüle
    😄 cevaplar da güzel.

    hocam token süresi dolana kadar token ı localstorage gibi biryerde tutup orda varsan onu kullanman yoksa eğer yeni token alıp saklaman gerekir. her seferinde token alırsan bu apinin amacından çıkması demektir. çok saçma olur yani.

    ikincisi, bir metod yada fonksiyonda artık neyse, 20 tane if çok fazla. neyi kontrol ediyorsun bilmiyorum ama bu işe başka bir çözüm getirmen lazım.api de framework kullanıyorsan işin biraz daha kolay. fonksiyonu parçalayıp her if içindeki mantık parçalarını metodlara bölmelisin.



    sql sorguları ağırlıklı if blokları varsa bu ifleri veritabanında yapmaya çalışabilirsin. proje basit bir projeyse gerek yok ama çok sorgu alan bir api ise stored procedure ler ile if olaylarını php de değil db de yorumlayabilirsin daha hızlı ve sağlıklı olur. biraz araştırma ile bu konuları hızlıca öğrenmek mümkün.


    kolay gelsin.
    Hocam Herseferinde hayat kurtarıcı cevaplar veriyorsunuz bana çok sağolun şimdi if ile şöyle yapıyorum newquery yapıp if ile eğer şu varsa ->where(örn) ekle eğer bu varsa ->select(örn) ekle diyerek gelen requestdeki datalara göre tek bir sorgu çıkartıyorum.bu sorgunun işlediği json datayıda web sitesinde parse ediyorum.Peki hocam laravel passport ile api yapıyorum da bu apinin güvenirliği nedir.Api kullanıcı çalınsa diğer tablolarda tehlikeye girer mi
  • 10-04-2018, 14:15:15
    #7
    Loren adlı üyeden alıntı: mesajı görüntüle
    Hocam Herseferinde hayat kurtarıcı cevaplar veriyorsunuz bana çok sağolun şimdi if ile şöyle yapıyorum newquery yapıp if ile eğer şu varsa ->where(örn) ekle eğer bu varsa ->select(örn) ekle diyerek gelen requestdeki datalara göre tek bir sorgu çıkartıyorum.bu sorgunun işlediği json datayıda web sitesinde parse ediyorum.Peki hocam laravel passport ile api yapıyorum da bu apinin güvenirliği nedir.Api kullanıcı çalınsa diğer tablolarda tehlikeye girer mi
    yani api user çalınsa tabii ki veritabanı tehlikeye girer. userlara scope tanımlamalısınız. yani bu user sadece bu modüllere erişebilir gibi birşey. Yada authorization paketlerinden biriyle rol ve izin yönetimi yapmalısınız. Bir kullanıcı herşeye yetkili ise ve kötü amaçlı kişilere bilgileri geçerse burda kurtarıcı laravel olamaz siz sorumlusunuz.
    Passport un amacı api kullanıcılarının bilgileri çalınırsa güvenlik sağlamak değildir. Api kullanıcı bilgileri olmadan veritabanına erişmeyi engellemektir. Yani kullanıcı bilgileri birinin eline geçmişse burda passport un yapabileceği birşey yok. Hiçbir paketin yapabileceği birşey yok.
  • 10-04-2018, 14:44:54
    #8
    curl ile kurdugun baglantının cookie dosyasını örneğin cookie.txt olarak belirledin,

    cookie.txt yoksa || (cookie.txt varsa && cookie.txt son kayıt süresi 10 saatti geçmiş ise; login işlemini gerçekleştirme koşulu koyman lazım

    if(!file_exists('cookie.txt')) {
    // login
    } else {
    if(filemtime('cookie.txt') + 3600 > time()) { // cookie.txt 1 saati geçmemişse
    // işlem
    } else {
    // login
    }
    }
    diyelim ki sen login olmasanda cookie güncelliyor ve dosya kayıt zamanı değişip duruyor o zaman sıkıntı yaratabilir tabi

    konu icerigini tam okumamıştım fakat bu şekilde de çözüm elde edebilirsin pratik düşünmek lazım
  • 10-04-2018, 14:56:02
    #9
    Neron adlı üyeden alıntı: mesajı görüntüle
    curl ile kurdugun baglantının cookie dosyasını örneğin cookie.txt olarak belirledin,

    cookie.txt yoksa || (cookie.txt varsa && cookie.txt son kayıt süresi 10 saatti geçmiş ise; login işlemini gerçekleştirme koşulu koyman lazım

    if(!file_exists('cookie.txt')) {
    // login
    } else {
    if(filemtime('cookie.txt') + 3600 > time()) { // cookie.txt 1 saati geçmemişse
    // işlem
    } else {
    // login
    }
    }
    diyelim ki sen login olmasanda cookie güncelliyor ve dosya kayıt zamanı değişip duruyor o zaman sıkıntı yaratabilir tabi

    konu icerigini tam okumamıştım fakat bu şekilde de çözüm elde edebilirsin pratik düşünmek lazım
    denicem hocam çok sağolun