2014-07-02 6 views
10

Sto sviluppando un'applicazione Android con un backend GAE, per sessioni ecc. Desidero utilizzare Google Cloud Endpoint e sviluppare un'API con modello utente di autenticazione personalizzato. Non voglio usare l'oauth di Google. Voglio implementare un semplice modello di autenticazione utente/pass-utente con un token basato su sessione. Non ho esperienza su GAE di sorta. Ho lavorato in python e nei suoi framework (django, fiaschetta, ecc.).Authenication personalizzato (modello utente) per Cloud Endpoints-Python

Ho cercato un progetto di questo tipo per la settimana passata (senza fortuna).

Qualcuno può fornirmi codice/risorsa di esempio su come implementare tale endpoint con la gestione delle sessioni e la protezione csrf con ssl?

Ps: Se si ritiene che gli endpoint del cloud non siano un buon approccio per la mia applicazione (backend del server), per favore indirizzami a un'origine che potrebbe aiutarmi a creare il mio RESTful api con codifica JSON + crsf-protection e session management .

Ho già visto la seguente, ma nessuno di loro ha una soluzione dettagliata:

risposta

11

Sei in per un giro. Non è un processo semplice, ma sono riuscito a fare proprio quello che stai cercando - anche se in modo un po 'schifoso.

primo luogo, c'è un progetto di testo standard per GAE (in Python) che implementa un sistema di login personalizzato e-mail/pwd utilizzando supplementi di webapp2: http://appengine.beecoss.com/

Esso segue le linee guida per l'impostazione di autenticazione personalizzata dettagliato in questo post del blog: http://blog.abahgat.com/2013/01/07/user-authentication-with-webapp2-on-google-app-engine/

Questo progetto imposterà le cose in modo che l'utente inizi una sessione al momento dell'accesso. Ora, per accedere alle informazioni dell'utente su questa sessione nei tuoi endpoint, seguirai le istruzioni a quello first StackOverflow link you posted.

La chiave, dopo aver seguito i passaggi precedenti, consiste nel far corrispondere la chiave di sessione degli endpoint alla chiave di sessione nel file di configurazione del codice boilerplate. Poi, sarete in grado di ottenere quale utente ha effettuato la richiesta e seguire con la chiamata finale se sono convalidati:

self.get_user_from_cookie() 

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

E 'incredibilmente ridicolo che questo è come funziona per l'autenticazione personalizzata, quindi se sei abituato a Django e vorresti implementare la tua app in questo modo, FACCIAMO. Era "troppo tardi per tornare indietro ora" per me, e disprezzo Google solo per la documentazione degli schemi di autenticazione che funzionano solo per i titolari di account Google.

OP, usa Django su GAE e risparmia la frustrazione. Sono sicuro che ci sarà un sacco di integrazione rapida con le app mobili che la comunità Django può fornire.

Nessuno vuole forzare i propri utenti di app a disporre di account Google per accedere, Google. Smettila.

Problemi correlati