facebook kimlik / login sorun

1 Cevap php

I have setup facebook authentication using php and it goes something like this first getting the authorization here :

https://graph.facebook.com/oauth/authorize?client_id=<?= $facebook_app_id ?>&redirect_uri=http://www.example.com/facebook/oauth/&scope=user_about_me,publish_stream

sonra Token burada erişim elde:

$url = "https://graph.facebook.com/oauth/access_token?client_id=".$facebook_app_id."&redirect_uri=http://www.example.com/facebook/oauth/&client_secret=".$facebook_secret."&code=".$code;"

function get_string_between($string, $start, $end){ 
    $string = " ".$string; 
    $ini = strpos($string,$start); 
    if ($ini == 0) return ""; 
    $ini += strlen($start); 
    $len = strpos($string,$end,$ini) - $ini; 
    return substr($string,$ini,$len); 
} 


$access_token = get_string_between(file_get_contents($url), "access_token=", "&expires=");     

sonra alıyorum kullanıcı bilgisi:

$facebook_user = file_get_contents('https://graph.facebook.com/me?access_token='.$access_token);

$facebook_id = json_decode($facebook_user)->id;
$first_name = json_decode($facebook_user)->first_name;
$last_name = json_decode($facebook_user)->last_name;

Bu (bence) oldukça çirkin ama ben kullanıcı giriş olduğunu onaylamak için herhangi bir oturum değişkenleri oluşturmak veya almak değil çünkü kullanıcı hala .. yapmadınız nasıl hiç .... .... çalışıyor Facebook'a ...

hangi kimlik kullanımını yapılır aldıktan sonra hala giriş anlamına gelir ....

first: is there a better way using php to do what i did above ? second: how do i set/ get session variable / cookies that ensure that the user doesnt have to click login

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

1 Cevap

Eğer ilk soru olduğunu cevaplamak için "Eh ben yukarıda yaptıklarını yapmak için php kullanarak daha iyi bir yolu var mı?"

Esasen ben soooo birçok seçenek olduğu gibi bu görüş meselesi gelir düştü. Bu sizin uygulamanız için var ne rahat hissediyorum ve ne amaçla bulunuyor.

Şahsen, ben temiz bir güzel zanaatkarın script, facebook geliyor, javascript giriş kullanmak (ben bu sana baskı ama bir seçenek sunmak için değil demek), hızlı vs vs bulunabilir ki here (o Ben sadece çok ikinci olduğu facebook iyi bölümü, bu bir oturuma değiştirebilirsiniz bir değişken olarak Yetkilendirme jetonu (kazandırır olduğunu) lol! o sayfayı güncelledik bu dikkat ettik olarak benim bilgi modası geçmiş ise, bu aşamada ben özür dilerim eğer istediğiniz) ve göstermiştir gibi sadece en url'lerin ucuna o çakmak gibi bu aslında bitti.

(Yeni güncellenen web sitesi aracılığıyla arıyor rağmen kod biraz daha 'karmaşık' bu düzen nedenle yardım istemeye istemeye korkmayın ediyor görünüyor ve ben size orijinal kodu vereceğim)

Question 2: how do you get/ set session varibles... Well there are many things and ways etc etc... however I'll keep the basic/simple version and add notes that you should file away in your mind for more advanced options. Firstly, at the start of any page with a session varible in it you should start with

session_start();

Eğer bir oturum varible dile eklemek istediğiniz zaman ve o zaman sadece bir meselesi

$_SESSION['session_variable_name'] = $variable;

(yes I know you're suppose to do the whole foo and bar thing but they annoy me :D ). And that's it! If you want to "log-out" you can

session_destroy();

and it'll stop carrying the session details. Now session notes:

  • Aksi belirtilmedikçe, oturumları genellikle dosyaları olarak sunucuya kaydedilir! Bu, yaptığınız herhangi bir gizlilik beyanlarını ihlal olabilir!

  • Oturumları genellikle alt alanlardaki hayatta yok (www.website.com -> website.com) ve gerçekten $ _POST verileri tavsiye değil. Ayrıca, bazı insanlar oturum verileri ile http:// https:// giden sorunlar yaşayabilirsiniz.

  • Oturumlar sonsuza kadar sürmez, onlar aslında daha sonra başvurmak üzere istemci tarayıcısına bir tanımlama oturum kimliği bırakın.

  • Eğer trafik ağırlık dağılımı için birden çok sunucu varsa bu sunucuları arasında geçmedi gibi tekrar oturumu kaybedebilir. Tüm sunucular memcache gibi oturumları için hitap sunucusuna erişmek ya da yaşayabileceğiniz bir yerde saklayabilirsiniz.

P: Ve ben hiç oturumları hakkında bilmeniz gereken en düşünüyorum

Ben yardımcı umut!

Jon