2011-01-27 35 views
7

Android/iPhone uygulamalarım ile sunucum arasında iletişimi sağlamak için basit bir API geliştirdim. Benim uygulamada, kullanıcıların kendilerini kimlik doğrulaması gerekir ve onlar aşağıdaki API çağrısıyla giriş/şifre kimlik bilgilerini kullanarak bunu:Facebook Kişisel kimlik doğrulaması yapmak için bağlanın

{ "api_token": "xxxx-xxxx-xxxx-xxxx" } 

Böylece temelde karşı benim kimlik alışverişi:

http://api.myapp.com/login?user=xxx&pass=pass 

Uygulama karşılığında aldığı api_token.

Facebook bağlantı desteği eklemek istiyorum. Facebook SDK'yı başarıyla kullandım ve doğru access_token'u aldım.

Ancak, döviz geçmek için en iyi uygulama ne olacağını, (onun web kullanıcı panelinde) Facebook ile hesabını bağlantılı zaten kullanıcıyı varsayarsak api_token

ile access_token alışverişinde bir mekanizma uygulamak gerekir ?

cevap

5

Sonunda nasıl yaptım. Bir yıldan uzun süredir çok iyi çalışıyor, hiç problem yaşamadım. Aşağıdakiler dahil tüm kullanıcı bilgileri ile geri JSON size gönderdiği basit

wget -qO- https://graph.facebook.com/me?access_token=<facebook_access_token> 

ile access_token geçerliliğini doğrulamak

http://api.myapp.com/login/facebook?access_token=<facebook_access_token> 

Sunucu tarafı: Fikir aşağıdaki API çağrısını kullanarak belirteçleri alışverişinde bulunmak olarak belirtildi Kullanıcının Facebook kimliği. Kullanıcının hesabını Facebook'a zaten bağladığını varsayarsak, user_id'u arayabilir ve bir api_token gönderebilirsiniz. yaklaşık

+0

İşte bana kalırsa senaryo: App A izinler X ile kullanıcı için bir fb erişim simgesi kazanır App A http://api.myapp.com/login/facebook 'adresinden giriş url ziyaret ? access_token = ... ' Artık A Uygulamasının erişebileceği erişim koduna sahip olduğunuzdan, artık kullanıcılara sizden izin almaksızın size izin vermeden, kullanıcıyla aynı erişime sahip oluyorsunuz (onlar ve sadece A) uygulamasına izin verildi. Bunu birkaç açıdan savunmasız olarak görebiliyor olsam da, yine de biraz yanlış ve potansiyel olarak kullanıcının güvenini ihlal ediyor. Ne düşünüyorsunuz? –

+2

Eh, bir şekilde evet haklısın, ama endişelendiğim sürece, "App A" yız. IMHO, haber bültenimize abone olan bir kullanıcıyla aynı: Kullanıcıyı spam olarak gönderebilir veya e-postayı üçüncü taraflara satabiliriz, ancak sorumlu bir şirket olduğumuz için değiliz (kanuna karşı sorumluluk) – EricLarch

İlgili konular