Mercurial > hg > bitsyauth
changeset 37:6b5946843928
example/persona.html example/wsgibrowserid.py
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Fri, 27 Dec 2013 13:58:22 -0800 |
parents | afeb01315ab6 |
children | 4dfffa966edd |
files | example/persona.html example/wsgibrowserid.py |
diffstat | 2 files changed, 63 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/example/persona.html Fri Dec 27 13:49:48 2013 -0800 +++ b/example/persona.html Fri Dec 27 13:58:22 2013 -0800 @@ -52,7 +52,7 @@ var signoutLink = document.getElementById('signout'); if (signoutLink) { - signoutLink.onclick = function() { navigator.id.logout(); }; +signoutLink.onclick = function() { navigator.id.logout(); }; } }); </script>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/wsgibrowserid.py Fri Dec 27 13:58:22 2013 -0800 @@ -0,0 +1,62 @@ +#!/usr/bin/env python + +""" +test Mozilla persona auth + +https://login.persona.org/about +""" + +import browserid +import optparse +import os +import sys +from webob import Request, Response, exc +from wsgiref import simple_server + +here = os.path.dirname(os.path.realpath(__file__)) +page = os.path.join(here, 'persona.html') + +class PersonaTest(object): + def __init__(self, page=page): + self.page = page + assert os.path.exists(self.page), "File '%s' not found" % self.page + self.page = open(self.page, 'r').read() + def __call__(self, environ, start_response): + request = Request(environ) + method = request.method + if method == 'GET': + content_type = 'text/html' + body = self.page + elif method == 'POST': + content_type = 'text/plain' + assertion = request.POST.get('assertion') + print ("Assertion: %s" % assertion) + body = '\n'.join(['%s: %s' % (key, environ[key]) + for key in sorted(environ.keys())]) + else: + content_type = 'text/plain' + body = 'Try GET or POST to do something interesting (How did you get here?)' + start_response("200 OK", [('Content-Type', content_type), + ('Content-Length', str(len(body)))]) + return [body] + +def main(args=sys.argv[1:]): + + usage = '%prog [options]' + parser = optparse.OptionParser(usage=usage, description=__doc__) + parser.add_option('-p', '--port', dest='port', + type='int', default=8123, + help="port to serve on") + options, args = parser.parse_args(args) + + app = PersonaTest() + + server = simple_server.make_server('127.0.0.1', options.port, app) + print 'server on\nhttp://localhost:%d/' % options.port + try: + server.serve_forever() + except KeyboardInterrupt: + pass + +if __name__ == '__main__': + main()