SocialAuth is a Java library for you if your web application requires:
- Authenticating users through external oAuth providers like Yahoo, Google, Twitter, Facebbook etc as well as through OpenID providers like myopenid.com.
- Easy user registration. All you need to do is create a page where users can click on buttons for the above providers or other supported providers. Just call SocialAuth and you can get all their profile details.
- Importing contacts from Google, Yahoo or Hotmail. Support for importing friends from Facebook and followers from Twitter coming soon !
There are so many libraries out there which implement OpenID and oAuth, so why another library? There many practical challenges that we faced while doing the implementation of above use cases. None of them is insurmountable but the developer could spend a couple of weeks solving these, which we actually did and hence decided to make things better for the community.
- There are many libraries for implementing Open ID and many for implementing oAuth. It becomes a difficult exercise to choose one that will do the integration quickly with the providers you want.
- Some libraries do not implement all the features and it becomes known only in the later stages of implementation – for example we found out that openid4java does not implement the hybrid protocol. We also found out that it is not easy to integrate dyuproject library.
- Even after implementing using the library, it does not work out of the box for all providers. There are always certain things specific to a certain provider. For example the scopes are different as well as some steps in authorization may be different.
- Getting the actual data, for example contacts of a user is out of the scope of these protocols and hence most libraries do not implement this functionality.
So what we implemented is a wrapper that leverages these existing libraries, and works out of the box without requiring you to face the above challenges. You get the same interface to deal with integration of every provider.