2015-02-23 28 views
11

Android Hesap Yöneticisini kullanarak kimlik doğrulama hakkında bir sorum var. Bir arka uçumuz ve bir Android uygulamamız var. Kullanıcı, Facebook hesabını kullanarak arka tarafımıza giriş yapmalı. Şu anda bu amaçla normal oAuth 2 yapan bir web sayfası gösteriyoruz, ancak Android Hesap Yöneticisini kullanmak kullanıcı için daha güvenli ve çok daha kolay. Sorum şu ki, sunucu kullanıcının gerçekte kimle yaptığını gerçekten doğrularsa nasıl doğrulayabilir. Uygulamaya güvenemediğimizden, kullanıcının gerçekte kim olduğunu iddia edip etmediğini doğrulamak için sunucu tarafından fb ile konuşmamız gerekiyor. Oldukça similar idea dayanarak ben bunu yapmak için doğru yolu olup olmadığını sormak için aşağıdaki diyagram yapılan ya da ben bir şey kaçırmış eğer:Android Hesap Yöneticisi'ni kullanarak sunucumdaki FB ile giriş yapmış olan kullanıcıları doğrula

Steps before the user is authenticated at "My Server" akışı şu şekilde görünecektir:

  1. Kullanıcı istediği onun facebook hesabı ile giriş
  2. o facebook hesabı alır Android Hesap Yöneticisi gösterilmektedir
  3. kullanıcı hibe "Benim app" onun fb veri erişmek için izin verildiğini erişmek
  4. Android Acc İzahname'de Müdürü Facebook sunucusuna
  5. "My App" Şimdi Yetkilendirme jetonu vardır ve kullanıcının fb verilerine erişebilir bir kimlik doğrulama anahtarı alır
  6. "My App" "My Sunucu"
  7. tokten geçer
  8. "Sunucum" artık kullanıcı verilerini fb sunucusundan alarak geçerli olup olmadığını denetliyor
  9. Jeton geçerliyse, "Sunucum" geçerli oturum için "Uygulamam" ile geçerli normal bir geçerli çerez verir. Kullanıcı şimdi My Server'da fb hesabıyla giriş yaptı.

Bu doğru yol mu? 6. adım, belirteci bir kez "sunucum" a geçirmek için iyi bir fikir mi yoksa daha iyi bir yol mu var? Btw Facebook sadece bir örnek, FB, Google ve Twitter gibi farklı kimlik sağlayıcıları kullanıyoruz ancak akış her biri için aynı olmalıdır.

+0

"Sunucum" artık kullanıcı verilerinin fb sunucusundan alınmasıyla jetonun geçerli olup olmadığını kontrol ediyor. Bu nasıl doğru olabilir? –

+0

@ H.A.H. facebook sunucusu geçerli kullanıcıyı döndürürse ve jetonu reddetmezse geçerli olmalıdır –

cevap

9

Bunun doğru olup olmadığını bilmiyorum. Ama çözümümüzle hemen hemen aynı olan durumumuzda bu sorunu nasıl ele aldığımızı anlatmak isterim. Google ve Facebook auth sağlayıcılarını kullanıyorduk.

Android uygulamamız sunucuya jeton gönderir ve sunucu doğrulanmışsa sağlayıcıya bağlı olarak jetonu doğrular, ardından uygun mesajı göstermiyorsa kullanıcı iyi olur. Ayrıca kullanıcı, uygulamayı sunucuda sonlandırdığında jetonun doğrulamasını her seferinde kontrol etmek için kullanılır. Eğer kullanıcı hala jetonlu bir kullanıcı ise uygulamayı kullanabilir. bir süre sonra süresi doldu.