Created
December 5, 2016 01:39
-
-
Save wasnot/b02fd3220d197a18f2caa9a4a4d05631 to your computer and use it in GitHub Desktop.
GAE/pyでGoogleでもOAuthでもないログインを実装 ref: http://qiita.com/wasnot/items/029b94bc7ba9f189e8d4
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import webapp2 | |
from models.user import User | |
webapp2_config = { | |
'webapp2_extras.auth': { | |
'cookie_name': 'sid', | |
'user_model': User, | |
}, | |
'webapp2_extras.sessions': { | |
'secret_key': 'your secret session key', | |
'session_max_age': 60*60*24*30, | |
} | |
} | |
app = webapp2.WSGIApplication([ | |
('/test', TestHandler), | |
('/delete', DeleteHandler), | |
], debug=True, config=webapp2_config) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from google.appengine.ext import ndb | |
import webapp2_extras.appengine.auth.models as auth_models | |
class User(auth_models.User): | |
gender = ndb.StringProperty() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import webapp2 | |
from views.base user_required | |
class TestHandler(webapp2.RequestHandler): | |
@user_required | |
def get(self): | |
# ログイン済みじゃないと見れないページ | |
self.render_template('authenticated.html') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def user_required(handler): | |
# ログイン中じゃない場合はログインページに遷移するなどします。 | |
def check_login(self, *args, **kwargs): | |
auth = self.auth | |
if not auth.get_user_by_session(): | |
self.redirect(self.uri_for('login'), abort=True) | |
else: | |
return handler(self, *args, **kwargs) | |
return check_login |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class LogoutHandler(BaseJsonHandler): | |
def get(self): | |
user = self.auth.get_user_by_session() | |
if user: | |
self.auth.unset_session() | |
return self.make_base_response() | |
else: | |
return self.make_error_response('not logged in') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment