Skip to content

Instantly share code, notes, and snippets.

@andrewdyates
Created October 29, 2010 00:09
Show Gist options
  • Save andrewdyates/652614 to your computer and use it in GitHub Desktop.
Save andrewdyates/652614 to your computer and use it in GitHub Desktop.
OpenID federated login / logout sketch test for Google App Engine
application: myapplication
version: 1
runtime: python
api_version: 1
handlers:
- url: /_ah/login_required
script: do_openid_login.py
- url: /logged_out
script: logged_out.py
- url: /.*
script: main.py
login: required
#!/usr/bin/python2.5
# -*- coding: utf-8 -*-
"""OpenID Login. To Be Implemented."""
from google.appengine.api import users
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
class MainPage(webapp.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write('Open ID Login page\n')
self.response.out.write(users.create_login_url())
self.response.out.write('\n===\n')
self.response.out.write(users.create_logout_url('/'))
app = webapp.WSGIApplication([
(r'.*', MainPage),
], debug=True)
def main():
run_wsgi_app(app)
if __name__ == '__main__':
main()
#!/usr/bin/python2.5
# -*- coding: utf-8 -*-
import os
from google.appengine.api import users
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
class MainPage(webapp.RequestHandler):
def get(self):
_w = self.response.out.write
self.response.headers['Content-Type'] = 'text/plain'
_w('You have been logged out.\n')
app = webapp.WSGIApplication([
(r'.*', MainPage),
], debug=True)
def main():
run_wsgi_app(app)
if __name__ == '__main__':
main()
#!/usr/bin/python2.5
# -*- coding: utf-8 -*-
import os
from google.appengine.api import users
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
class MainPage(webapp.RequestHandler):
def get(self):
_w = self.response.out.write
self.response.headers['Content-Type'] = 'text/plain'
_w('Hello, webapp World!\n')
_w("logout: " + users.create_logout_url('/no') + "\n")
_w("login: " + users.create_login_url('/') + "\n")
user = users.get_current_user()
if user:
_w("user.nickname(): %s\n" % user.nickname())
_w("user.email(): %s\n" % user.email())
_w("user.user_id(): %s\n" % user.user_id())
_w("user.federated_identity(): %s\n" % user.federated_identity())
_w("user.federated_provider(): %s\n" % user.federated_provider())
_w("is_current_user_admin(): %s\n" % users.is_current_user_admin())
else:
_w("No User Login")
_w('\n===\n')
for k, v in os.environ.items():
_w("%s = %s\n" % (k, v))
app = webapp.WSGIApplication([
(r'.*', MainPage),
], debug=True)
def main():
run_wsgi_app(app)
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment