2013-07-13 14 views
7

Kullanıcı kaydı gerektiren bir Android uygulamanız varsa ve kullanıcılarınızın Google üzerinden giriş yapmasına izin vermek istiyorsanız, bunu nasıl ele alırsınız?Kullanıcıların Google kimlik bilgilerini kullanarak uygulamanıza erişmelerine izin vermenin en iyi yolu

Google+ oturumunu burada tartışmanın dışında tutmak isterim. Ayrıca, Google API'lerine erişmek için kullanıcı kimlik bilgilerini kullanmıyoruz ve Google + 'nın sosyal özelliklerine ek erişimle ilgilenmiyorum. Kimlik doğrulama için

Kullanım OAuth2.0

Google OAUth2 Login sayfa

Bu Android'i söz etmez belgelenmiş ama öyle (:

çok sayıda seçenek var gibi görünüyor Kısmen) OAuth2 erişim belirteçlerine dayanmaktadır, ancak daha önemlisi bir JSON Web Token id_token'in doğrulanmasıyla ilgilidir.

Kullanıcıları doğrulamanın bir yolu da, kullanıcıların google hesabına giriş yapmalarına ve id_token'ın oldukça karmaşık bir şekilde doğrulanmasına izin vermek için bir Web Görünümünün başlatılmasını içerir.

Kullanım OAuth2/Google Play Hizmetler Google yetkilendirilmesine ilişkin daha odaklanmış Play Hizmetleri örnek bir var

. Bir access_token almak için GoogleAuthUtil.getToken kullanır. İletişim kutusunun "Oturum aç ..." ifadesiyle, bir kısmı kesinlikle kimlik doğrulamasıdır. Bunun bir kimlik doğrulama mekanizması olarak access_token ile OAuth2.0 akışını kullanmak için kötü bir uygulamadır olduğunu varsaymak düzeltmek

enter image description here

Am? (erişim belirtecini bir kimlik doğrulama belirteci olarak saklamak).

Destekleme Facebook/Twitter girişlerin soruyorum nedeni Twitter ve Facebook bir kimlik doğrulama süreci "ile ... Oturum aç" uygulama tavsiye yolu olduğunu

Bu aynı zamanda gibi görünüyor Tamamen OAuth erişim belirteçlerine dayanmaktadır.

Bu konuda farkında olmadığım diğer seçenekler, kullanıcıların Google hesaplarıyla kimliklerini doğrulamanıza olanak tanır mı?

cevap

4

Ne gerek bu http://android-developers.blogspot.com/2013/01/verifying-back-end-calls-from-android.html

yani bir kimlik Jetonu almak ve giriş yapmak arka uç için kullanabilirsiniz olan uygulamanızın

Haklısınız. Genel olarak, kimlik doğrulama için erişim belirtecini kullanmak kötü bir fikirdir.Bu konuda geliştiricilere dikkat çekmek için çoklu sunumlar yaptık. https://docs.google.com/presentation/d/1klTZheiQIhcty6MKvTYS12cw1Vyn4T1R4d60QCRYM60/edit?usp=drive_web

Başka bir seçenek yoksa ve yalnızca erişim belirteci varsa, olası güvenlik sorunlarına giriş yapmak ve bunları hafifletmek için kullanmak üzere bazı ek doğrulama yapabilirsiniz. ID Token'in OpenIDCOnnect'te tasarlanmış olmasının bir nedeni vardır ve bu kimlik doğrulama için kullanılacaktır.

+0

Bu yemek kitabını kontrol edebilirsiniz. Https://developers.google.com/accounts/cookbook/platforms/Hybrid – nvnagr

+0

Gerçekten de Google Plus’ı içermeyen Android’de bunu yapmanın iyi bir yolu gibi görünüyor. Sunum için de (Google Play Hizmetleri ile bir bağımlılığı var) +1. – ddewaele

+1

Bunu "Google Hesabınızı kullanarak giriş yapın" türünde kullanmak istiyorsanız, arka uç veritabanında ne saklıyorsunuz? Kullanıcı kimliğini DB'ye google kimlik jetonlarını kullanarak (ilk kimlik belirteçini aldıktan ve doğruladıktan sonra) doğrulayan bir bayrakla eklemek yeterlidir ve sonra her arka tarafa gönderilen her IDToken'i doğrulamanız yeterlidir. REST çağrısı). Bu IDTokens'i arka uçta saklamak/saklamak gerekmiyor değil mi? – ddewaele

İlgili konular