Skip to content

Instantly share code, notes, and snippets.

@dlo
Created January 3, 2010 23:13
Show Gist options
  • Select an option

  • Save dlo/268181 to your computer and use it in GitHub Desktop.

Select an option

Save dlo/268181 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
import web
from openid.consumer.consumer import *
# Store OpenID session variables in memory
store = openid.store.memstore.MemoryStore()
# Get this from the Clickpass website
clickpass_site_key = YOUR_SITE_KEY
# Can be something like "/openid/complete_login"
complete_login_url = YOUR_COMPLETE_LOGIN_URL
# Your base domain, e.g., "http://google.com"
realm = YOUR_REALM
urls = (
"/", "home",
"/begin_openid_login", 'begin_openid_login',
"/complete_openid_login", 'complete_openid_login'
)
app = web.application(urls, locals())
class home():
def GET(self):
return """<style> @import
'http://www.clickpass.com/stylesheets/container.css'; </style> <div
id="clickpass_button" style="width: 136px; height: 18px; position:
relative; z-index : 9999 ;"> <iframe
src="http://www.clickpass.com/embedded_buttons/login/%s" width="136"
height="18" frameborder="0" allowtransparency="true" scrolling="no"
style="z-index:9999;position: absolute; top: 0; left: 0;"></iframe> </div>
<script type="text/javascript"
src="http://www.clickpass.com/javascripts/ClickpassPanel.class.external.js?v1"></script>
<script type="text/javascript"> var clickpassPanel = new
ClickpassPanel('clickpass_button');</script>""" % clickpass_site_key
class complete_openid_login():
def GET(self):
data = web.input()
c = Consumer(web.ctx.session, store)
result = c.complete(dict(data), current_url = complete_login_url)
if result.status == SUCCESS:
return result.identity_url
elif result.status == FAILURE:
return "FAILURE"
elif result.status == CANCEL:
return "CANCEL"
class begin_openid_login():
def GET(self):
data = web.input()
openid_url = data['openid_url']
c = Consumer(web.ctx.session, store)
auth = c.begin(openid_url)
raise web.seeother(auth.redirectURL(realm, return_to = complete_login_url))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment