simpleauth er en simpel godkendelse wrapper for en Google App Engine app.
Understøttede specs:
& Nbsp; - OAuth 2.0
& Nbsp; - OAuth 1,0 (a)
& Nbsp; - OpenID
Understøttede udbydere ud af boksen:
& Nbsp; - Google (OAuth 2.0)
& Nbsp; - Facebook (OAuth 2.0)
& Nbsp; - Windows Live (OAuth 2.0)
& Nbsp; - Twitter (OAuth 1.0a)
& Nbsp; - LinkedIn (OAuth 1.0a)
& Nbsp; - OpenID, ved hjælp af App Engine brugere modul API
Kom godt i gang
1. Installer biblioteket på din lokale Mac / PC med en af:
& Nbsp; a. "Easy_install -U simpleauth"
& Nbsp; b. "PIP installere simpleauth"
& Nbsp; c. klone kilde repo, fx "Git klon git: //github.com/crhym3/simpleauth.git"
2. Placer undermappe kaldet "simpleauth" i din app rod.
3. Du får også brug for at få python-oauth2 (PIP installere oauth2) og httplib2 (http://code.google.com/p/httplib2/)
3. Opret en sagsbehandler ved delklasse SimpleAuthHandler, fx
& Nbsp; & nbsp; class AuthHandler (SomeBaseRequestHandler, SimpleAuthHandler):
& Nbsp; & nbsp; & nbsp; & nbsp; "" "Authentication handleren til alle former for Aut." ""
& Nbsp; & nbsp; & nbsp; & nbsp; def _on_signin (self, data, auth_info, udbyder):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "" "Notering, når en ny eller eksisterende bruger logger ind.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; data er en bruger info ordbog.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; auth_info indeholder adgang token eller OAuth token og hemmelige.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Se hvad der er i det med logging.info (data, auth_info)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "" "
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; auth_id = auth_info ['id']
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # 1. Kontroller, om brugeren findes, f.eks
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # & Nbsp; & nbsp; & nbsp; User.get_by_auth_id (auth_id)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; #
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # 2. oprette en ny bruger, hvis den ikke gør det
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # & Nbsp; & nbsp; & nbsp; Bruger (** data) .put ()
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; #
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # 3. tegn i brugerens
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # & Nbsp; & nbsp; & nbsp; self.session ['_ user_id'] = auth_id
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; #
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # 4. omdirigering eller andet sted, for eksempel self.redirect ("/ profile)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; #
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # Se mere om, hvordan man arbejder ovenstående trin her:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # Http://webapp-improved.appspot.com/api/webapp2_extras/auth.html
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # Http://code.google.com/p/webapp-improved/issues/detail?id=20
& Nbsp; & nbsp; & nbsp; & nbsp; def logout (selv-):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.auth.unset_session ()
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.redirect ('/')
& Nbsp; & nbsp; & nbsp; & nbsp; def _callback_uri_for (self, udbyder):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; returnere self.uri_for (»auth_callback«, udbyder = udbyder, _full = True)
& Nbsp; & nbsp; & nbsp; & nbsp; def _get_consumer_info_for (self, udbyder):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "" "Skal returnere en tupel (nøgle, hemmelig) for myndig init anmodninger.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; For OAuth 2.0 bør du også returnere en rækkevidde, fx
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ('Min app id', 'min app hemmelighed', 'e-mail, user_about_me')
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Omfanget depens udelukkende på udbyderen.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Se eksempel / secrets.py.template
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "" "
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; tilbage secrets.AUTH_CONFIG [udbyder]
Bemærk, at SimpleAuthHandler er ikke en rigtig sagsbehandler. Det er op til dig. For eksempel kan SomeBaseRequestHandler være webapp2.RequestHandler.
4. Tilsæt routing således at »/ auth / provider ',' / auth / provider / tilbagekald" og "/ logout anmodninger gå til din AuthHandler.
& Nbsp; & nbsp; For eksempel, du i webapp2 kunne gøre:
& Nbsp; & nbsp; # Kort webadresser til handling
& Nbsp; & nbsp; ruter = [
& Nbsp; & nbsp; & nbsp; & nbsp; Rute ('/ auth /',
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; handleren = 'handlers.AuthHandler: _simple_auth ", name =' auth_login«)
& Nbsp; & nbsp; & nbsp; & nbsp; Rute ('/ auth // tilbagekald «,
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; handleren = 'handlers.AuthHandler: _auth_callback ", name =' auth_callback«)
& Nbsp; & nbsp; & nbsp; & nbsp; Rute ('/ logout',
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; handleren = 'handlers.AuthHandler: logout ", name =" logout ")
& Nbsp; & nbsp; ]
5. Det er det. Se en prøve app i eksemplet dir.
Hvis du vil køre eksemplet app, kopiere eksempel / secrets.py.template i eksempel / secrets.py og start app lokalt ved at udføre run.sh
Hvad er nyt i denne udgivelse :
- CSRF beskyttelse til OAuth 2.0 http://code.google.com/p/gae-simpleauth/issues/detail?id=1
- Tilpassede undtagelser http://code.google.com/p/gae-simpleauth/issues/detail?id=2
- Eksempel app forbedringer, herunder:
- CSRF vagt
- Vis undtagelse meddelelser for demo formål
- pænere produktion af sessionen, profildata og auth_info ordbøger
- https://github.com/crhym3/simpleauth/issues/4
- https://github.com/crhym3/simpleauth/issues/5
- Mere nyttig info i README
Krav :
- Python
- oauth2
- LXML
- httplib2
Kommentarer ikke fundet