CloudforkSSO – OpenID and OAuth support for Smalltalk
With the CloudforkSSO library you can let the users of your Seaside web application login using their Google or Yahoo accounts. This works using the OpenID2 protocol. CloudforkSSO also contains OAuth support. With this protocol you can ask users for permission to access their data on other websites.
Some providers that you can integrate with:
Google – Google supports OpenID2 and OAuth1. You can use them separately or together. With OpenID2 users can identify themselves using their Google accounts. It is also possible to get some information about the user. For example the user’s name and email address.
Google’s OAuth1 support is really powerful. With it you can access and modify (if the user agrees!) a users calendar, contact, documents and a lot more.
Twitter – Twitter supports OAuth1. You can ask a user for read-only or full permission.
Facebook – Facebook supports OAuth2. You can access the social graph of a user.
A demo of this library runs at http://sso.doit.st.
OpenID2 and OAuth1 are pretty complex protocols. CloudforkSSO implements part of the protocol, enough to support the major providers like Google, Yahoo and Twitter. OAuth2 is a simple protocol. If OAuth2 is all you need CloudforkSSO is probably overkill. A HTTP Client with ssl support is enough.
I developed CloudforkSSO in Pharo Smalltalk. Most providers require secure communication via https. As far as I know, the only HTTP Client for Squeak and Pharo that supports https is WebClient with SqueakSSL. This works fine on Windows but on Ubuntu Linux the SqueakSSL plugin doesn’t work with some providers, for example Twitter and Yahoo. Hopefully this will be fixed soon.
There is also a VA Smalltalk port on VAStGoodies.com which does work on Windows and Linux.
The package Cloudfork-SSO-Seaside contains a demo component that shows how you can use the functionality. Note that for OAuth you need an API key and secret for the provider you want to use. For OpenID it is important to set the correct realm. This is the host and port where your app is running. You can set these configuration properties using the Seaside configuration app:
Explore posts in the same categories: CloudforkTags: pharo, smalltalk, vasmalltalk
You can comment below, or link to this permanent URL from your own site.
February 15, 2011 at 14:16
Great job man!
Can’t wait to put a dent on it.
Comment: I wouldn’t worry about connecting SSL from the image itself because you can easily wrap normal http connections from the host (probably faster). This one for example: http://www.stunnel.org
February 15, 2011 at 14:31
@sebastian, have you ever used stunnel in production ? It is not too painful to install/configure on your development, staging and production servers ?
February 15, 2011 at 18:38
You have to play a bit with its .conf file until you get what you want but is not rocket science that’s for sure
I’ve used it to develop Merchant (http://forum.world.st/ANN-Merchant-a-credit-card-processing-library-td100876.html) and I’ll be using it when airflowing start commercial operations
February 15, 2011 at 17:40
[...] This post was mentioned on Twitter by Planet Lang and Geoffroy Couprie, The Pharo Project. The Pharo Project said: CloudforkSSO – OpenID and OAuth support for Smalltalk: http://t.co/eeSkMKp [...]
May 11, 2012 at 16:14
Can you provide the code that you need to use openID on a seaside website?
Thanks
May 12, 2012 at 13:25
You can find the code here: http://www.squeaksource.com/Cloudfork Look for the Cloudfork-SSO-Seaside package.