Bu tarz API arayuzlerinde, kullanici ilk giris yapmaya calistiginda islem basarili ise ana site tarafindan bir session anahtari saglanir. Bu anahtar genelde belirli bir sure icin gecerlidir. Login olduktan sonraki API cagrilarinda bu session anahtarida gonderilmek zorunda olur ve boyle kullanicinin giris yapip yapmadigi kontrol edilir. Tabi bu anahtar, son kullanim tarihi ile birlikte ana sitenin sisteminde kayitli olur.

PHP'de API kullanarak başka sitelere kullanıcı bilgilerini vermek istiyorum. Örneğin API'den çağırılan bir fonksiyonla kullanıcıya ait üyelik bilgilerini alıp ekrana yazdırmak gibi. Veri alma kısımlarını kafamda netleştirebiliyorum, bir class yazarak gerekli bilgileri XML veya JSON formatında çıktı vermek kolay. Ancak kullanıcı doğrulama işlemlerinde mantık yürütemedim. Örneğin ana sitede kullanıcı girişi yapmışken, alt sitelere girildiğinde orada kullanıcı girişi yapıp yapılmadığını nasıl algılayabilir? Ya da alt siteden kullanıcı girişi yapıldığında bilgilerin doğru olup olmadığı nasıl kontrol edilebilir? Ekşi sözlük sitesinde üye olanlar varsa Sub-Etha diye bir bölüm var. Yapmak istediğim tam olarak öyle bir sistem oluşturmak. Geliştiriciler API kodlarını alarak kendilerine bir site kuruyorlar. Ekşi sözlük üyesiyseniz orada da üye olarak giriş yapabiliyorsunuz. Bu konu hakkında bilgilerinizi paylaşırsanız çok sevinirim.

Sitenin API ile login olup bilgileri almasında problem yok. Benim takıldığım nokta, ana sitenin bir üyesi, ana sitedeki üyelik bilgileriyle alt sitelere nasıl üye girişi yapabilir? Bu işlem için JavaScript kullanmadan PHP ile basit bir kontrol yapmanın yolu yok mudur?

İlk Sorunu anlamadım. Alt sitelere giriş yapabilmek için kullanıcı ve şifresini bir şekilde giriş yapmalı kullanıcı. Ya form açacaksın alt siteye, gelen veriyi PHP ile ana siteye gönderip yapacaksın. Alt sitedekiler parolamı çalar diyorsan, iframe/frame/pop açacaksın ana siteye orada giriş yapılacak, (X giriş yapmanızı istiyor diyecek). Session key atanacak kullanıcıya. Bundan sonraki sayfalarda Javascript ile o session_key kullanılarak ana sayfa ile bağlantı kurulacak. Bu Facebook Connect metodu. Son Sorunun cevabına gelince, kullanıcının şifresini elle alt sitede girmesini istemiyorsan, sadece PHP ile yapmanın bi yolu yok.

Soruyu umarım yanlış anlamamışımdır. Twitter, MySpace gibi siteler OAuth kullanıyor. PHP için kullanabileceğiniz Framework'ler var. OAuth sitelere özgü bir şey değil, genel olarak kullanılan bir güvenlik sistemi. Kısaca takip edilen yol şu: - Uygulamanızı sisteme kayıt edersiniz - API Key alırsınız - Uygulamanıza eklersiniz - Kullanıcı bu uygulamaya tıklar - Tıklanan link, siteye gider ve kullanıcıya sorar: &quot;Bu uygulama bilgilerinze ulaşmak istiyor&quot; gibi - Kullanıcı &quot;Kabul&quot; &quot;Ret&quot; diyerek işlemi sonlandırır yada bilgilerin onaylanması için onay verir - Onay verdiğinde site bir PIN verir - Bu PIN'i kullanıcı sizin uygulamanızdaki gerekli yere girer - Uygulama bu PIN ve Uygulama Key'i ile site'den bir istekte bulunur - Bu istek sonucunda sadece o kullanıcıya özel bir Key verir. - Bu keyi site'den her istekte belirtmeniz/belirtmeleri gerekir. Bilgi almak ve vermek için OAuth sistemi en güvenilir yöntem. Kullanıcı şifresini başka yerlere girmek zorunda kalmıyor. Yukarıda sıraladıklarım daha çok twitter üzerine. Daha fazla bilgi için: http://oauth.net/

Kullanicilari login yapmak icin kullanacaksan ve sifreleri gormesini istemiyorsan, iframe, popup ile acacaksin. Facebook senin domainin uzerinden facebook'a Javascript cagrisi yapabilmek icin ozel bir dosya upload ettiriyor senin sunucuna. Bu sayede popup ile Facebook'a giris yaptiktan sonra tekrar eden senin sitenin sayfalarinda Javascript ile dogrulama yaptiriyor. Kullanici ile ilgili bilgileri gene dedigim gibi API uzerinden cekiyorsun, onun logini ve kontrol islemleri ayri. Senin dedigin popup sadece X kisisinin Y sitesini onaylamasindan ibaret. Bundan sonrasi Y sitesinin X kisisi ile ilgili islem yapmasi.

yagmayok' Alıntı:

Bu üyelik kısmı kafanıza takılmasın oldukça basit işlemlerdir. Yazdıklarınızdan anladığım kadarıyla http://scripti.org/uyelik. scripti adresindeki sörnek scriptleri inceleyerek mantığını kolay bir şekilde kavrayabileceğinizi düşünüyorum. Olaya şöyle de bir özet getirmek istiyorum. Form ile üyelik bilgilerini aldığınız kullanıcının bilgilerini veritabanı ile kontrol ettirirsiniz. Doğru ise işlem yapmaya devam ettirirsiniz yanlışsa zaten birşey yok. Doğru ise zaten doğru olduğunu bir şekilde kayıt altına alıyorsunuz. Bunu örneklerde çok rahat anlarsınız. Daha sonra diğer sayfalarda kayıt altına aldığınız bilgileri çağırıyorsunuz. Böylece giriş yapılıp yapılmadığı bilgisi ile sayfada işlemlere devam ediyorsunuz. Mantık budur, dediğim gibi örneklerde zaten ne yapıldığını iyi bir şekilde kavrarsınız.