2011-06-10 29 views
7

Facebook'taki Android uygulaması tarafından alınan auth jetonunu kullanarak sunucu tarafında kullanıcıyı doğrulamak mümkün mü? Başka bir deyişle, Android uygulaması SSO kullanıyor ve auth jetonu alıyor. Ardından, Google App Engine'de dağıtılan uygulamayı arka uçlu hale getirmek için bu jetonu gönderir. Ardından arka uç uygulaması, jetonu kullanarak kullanıcıyı Facebook'a karşı doğrular.Facebook auth jetonu değişimi

Alınan jetonun yalnızca Android uygulaması tarafından kullanılabildiği, ancak kim tarafından bilindiğinden, bunun mümkün olmadığını düşünüyorum. Belki bir şekilde yeniden kullanılabilir?

cevap

0

Facebook, aslında bunu yapmanıza izin veren bir Android SDK'sına sahiptir. Bilgi here bulunabilir.

+0

Evet, Android'de SSO yapabileceğimi biliyorum. Ancak soru, arka uç uygulamam ile auth jetonu değiştirebilir miyim? – user793456

0

Evet yapabilirsiniz. Geçerli bir erişim belirteci geçerli bir erişim belirtecidir. Grafik API, belirtecin nereden geldiğini gösterir, ancak yalnızca belirtecin grafik api'nin bu bölümüne erişmek için uygun izinlere sahip olması gerekir. Bununla birlikte, belirtecin, verilme tarihinden itibaren yalnızca 24 saat süreyle geçerli olduğunu unutmayın. (Bu gerçekten bir kelime mi?) Verildiği zamandan itibaren?

0

SingleSignOn (SSO) ile facebook android sdk kullanırken, erişim belirteci biçimi gerçekten değişti. Yeni arada belirteç erişimi formated ile Facebook Devs orada desteklemek apis dinlenmeye süreci devam olduklarından Kimlik Doğrulama Simgesi bir parçası olarak kullanıcı kimliği & oturum anahtarını içeren Yerine alma geleneksel yetkilendirme token şimdi Kimlik Doğrulama Simgesi

farklı bir biçim almak DEFAULT_AUTH_ACTIVITY_CODE değerini 32665 (Facebook.java) 'dan -1'e çevirerek android facebook sdk üzerindeki SSO'yu devre dışı bırakabiliriz. Bu, acess belirteci vermek için Geleneksel dialouge'ı çağırır ve karşılığında oturum anahtarını içerecek erişim jetonunu alırsınız.

Eğer

kamu dize getSessionSecret (Dize accessToken) MalformedURLException, IOException atar gibi Facebook.java kendi yöntemi eklemek gerekir güvenli sonunda balansı arayan olanlar { Paketi b = new Paketi() ; b.putString ("method", "auth.promoteSession"); b.putString ("access_token", accessToken); b.putString ("session_key_only", "true"); Dize yanıtı = request (b); dönüş cevabı; }

2

Android API'dan aldığınız Token, grafiğin sorgulanması yoluyla belirtecin geçerliliğini kontrol eden sunucunuza gönderilebilir (örneğin/me? Auth_token = .... kullanarak). Sorun, aynı belirtecin üçüncü taraflarca kullanılabileceğidir - istemciye özgü değildir - ve bu nedenle sunucu kimliğini temel alırsanız, bir sorunla karşılaşırsınız (ünkü üçüncü bir uygulama kullanıcı belirtecini kullanabilir ve kimliği doğrulanmış olabilir) sen). Bu sorunu çözmek için bir yol bulmaya çalışıyorum, ancak henüz iyi bir fikrim yok ...