2014-07-02 10 views
10

GAE arka planı, oturumlar vb. Için bir Android uygulaması geliştiriyorum Google Cloud Endpoint'i kullanmak ve özel kimlik doğrulama kullanıcı modeliyle bir API geliştirmek istiyorum. Google'ın oauth'unu kullanmak istemiyorum. Oturum tabanlı belirteçle basit bir e-posta/kullanıcı kimlik doğrulama modeli uygulamak istiyorum. GAE konusunda hiç tecrübem yok. Python'da çalıştım ve çerçeveler (django, flask, vb.).Cloud Endpoints-Python için Özel Kimlik Doğrulama (Kullanıcı Modeli)

Geçtiğimiz hafta için bu tür bir örnek proje aradım (şanssız).

Birisi, ssl ile birlikte oturum yönetimi ve csrf koruması ile böyle bir son noktayı nasıl uygulayacağınıza dair bana örnek kod/kaynak sağlayabilir mi? Not: Bulut uç noktalarının benim uygulama (sunucu arka planı) için iyi bir yaklaşım olmadığını düşünüyorsanız, lütfen beni JSON kodlama + crsf koruması ve oturum yönetimi ile kendi RESTful API'mizi oluşturmama yardımcı olabilecek bir kaynağa yönlendirin. .

Zaten şu ancak bunların hiçbiri detaylı çözüme sahip gördük:

cevap

11

Bir yolculuk için konum. Bu basit bir süreç değil, ama aradığınız şeyi - biraz hakir bir şekilde de olsa - yapmayı başardım. Bu blog yayınında ayrıntılı özel kimlik doğrulama kurmaya ilişkin yönergeleri takip http://appengine.beecoss.com/

:

Öncelikle webapp2 en ekstralar kullanarak özel bir e-posta/şifre giriş sistemini uygulayan (Python) GAE için yerleştirilmiş önemsiz projesi var http://blog.abahgat.com/2013/01/07/user-authentication-with-webapp2-on-google-app-engine/

Bu proje, kullanıcılarınızın oturum açtıktan sonra bir oturum başlatmasını sağlayacak şekilde ayarlayacaktır. Şimdi, bu oturumdaki kullanıcı bilgilerine uç noktalarınızda erişmek için, o talimatları first StackOverflow link you posted'a uygulayacaksınız.

Anahtar, önceki adımları izledikten sonra, uç noktalarınızdaki oturum anahtarını, kazan kodu kodunun yapılandırma dosyasındaki oturum anahtarıyla eşleştirmektir. Onlar valide eğer Ardından, istekte hangi kullanıcı almak ve bitiş noktası çağrısı üzerinden takip etmek mümkün olacak:

self.get_user_from_cookie() 

    if not self.user: 
     raise endpoints.UnauthorizedException('Invalid token.') 

O özel kimlik doğrulama için nasıl çalıştığını şu olduğunu inanılmaz saçma, eğer öyleyse Django'ya alışkınsınız ve uygulamanızı bu şekilde uygulamak istersiniz, DO IT. Benim için "şimdi geri dönmek için çok geç" oldu ve Google'ı yalnızca Google hesabı sahiplerine özel olarak çalışan kimlik doğrulama şemalarını belgelemek için küçümsedim.

OP, sadece GAE'de Django'yu kullanın ve kendinizi hayal kırıklığından kurtarın. Eminim Django topluluğunun sağlayabildiği mobil uygulamalarla hızlı bir şekilde entegrasyon var.

Kimse, uygulama kullanıcılarını Google'da oturum açmak için Google hesaplarına sahip olmaya zorlamak istemiyor. Durdur şunu.