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
api bağlantısı devamlı login sorunu
8
●529
- 09-04-2018, 21:44:20JWT konusunu araştır.
https://www.sitepoint.com/php-author...on-web-tokens/ - 09-04-2018, 22:34:09mehmetuken 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:54api 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:38Kimlik 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:12Hocam 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 miztk adlı üyeden alıntı: mesajı görüntüle
- 10-04-2018, 14:15:15yani 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.Loren adlı üyeden alıntı: mesajı görüntüle
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:54curl 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