| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- #!/usr/bin/env python
- """Make an OpenID Assocition request against an endpoint
- and print the results."""
- import sys
- from openid.store.memstore import MemoryStore
- from openid.consumer import consumer
- from openid.consumer.discover import OpenIDServiceEndpoint
- from datetime import datetime
- def verboseAssociation(assoc):
- """A more verbose representation of an Association.
- """
- d = assoc.__dict__
- issued_date = datetime.fromtimestamp(assoc.issued)
- d['issued_iso'] = issued_date.isoformat()
- fmt = """ Type: %(assoc_type)s
- Handle: %(handle)s
- Issued: %(issued)s [%(issued_iso)s]
- Lifetime: %(lifetime)s
- Secret: %(secret)r
- """
- return fmt % d
- def main():
- if not sys.argv[1:]:
- print "Usage: %s ENDPOINT_URL..." % (sys.argv[0],)
- for endpoint_url in sys.argv[1:]:
- print "Associating with", endpoint_url
- # This makes it clear why j3h made AssociationManager when we
- # did the ruby port. We can't invoke requestAssociation
- # without these other trappings.
- store = MemoryStore()
- endpoint = OpenIDServiceEndpoint()
- endpoint.server_url = endpoint_url
- c = consumer.GenericConsumer(store)
- auth_req = c.begin(endpoint)
- if auth_req.assoc:
- print verboseAssociation(auth_req.assoc)
- else:
- print " ...no association."
- if __name__ == '__main__':
- main()
|