Introducing Social Login
We had previously implemented Facebook Connect (which worked great) but ultimately found that users wanted a choice as to which provider they could login with. So we sleuthed around for a while, evaluated a couple other solutions and then came across Gigya. They offered a nice social login plugin so we decided to try their service.
As most developers know, there’s an uneasy anticipation before evaluating a new API or library. You’re excited about the prospects of finding a solution to some development issue yet mentally preparing a list of expletives to bark while you inevitably debug the implementation. But evaluating Gigya’s social login plugin was refreshingly simple. After getting a free developer’s key, we just cut and paste their example code and (to our surprise) things worked exactly as expected. We also test drove some of their social plugins and played around with their code examples. Both those experiences were equally straightforward.
After meeting their team face-to-face (something we felt strongly about), we decided to go with Gigya. The actual implementation was smooth and their engineering team gave us some great pointers to make sure we were leveraging all the security features built into the platform. We currently allow users to securely login with Facebook, Twitter, Google, Yahoo, MySpace and Messenger.
Discovering a Platform
From my perspective, the main benefits of Gigya have actually came AFTER implementing social login. As our own application began to evolve, we started checking the Gigya API more closely for features we needed to make our application more social. Sure enough, we started uncovering a treasure trove of platform details that had escaped our initial focus on social login. This was an important period of discovery because it meant we had a genuine technical roadmap for adding the kinds of social functionality needed to better engage our users.
Here’s are my top five features and “things I’ve come to realize” about the Gigya platform that have helped us tremendously since our initial social login implementation:
1. It’s FAST
Right off the bat, we noticed the Gigya API is fast. They store a lot of key information in cache so when you call functions like getUserInfo() to retrieve profile information or determine which providers a user is connected to, it snaps back with the data right away. The only latency we’ve experienced is calling getFriendsInfo() immediately after login. Sometimes this can take several seconds depending on the number of friends and the performance of each provider. But otherwise, we continue to be thoroughly impressed by Gigya response times.
2. Having both Client and Server APIs Makes Life Easier
3. Direct API Calls to Providers
Gigya DOESN’T lock you into their platform. There are several instances where our application goes directly to the Facebook Graph API and Twitter API to retrieve user data. Gigya has a good writeup on how to call Facebook directly but you can easily extend that to other providers like Twitter and Messenger Connect. While we use the Gigya API much of the time, we’re completely free to call native provider APIs as needed.
4. Multiple Social Network Connections
We had always contemplated a feature called “social filtering” which could let users view game activity by friends on different networks. When we casually mentioned this to a Gigya development engineer, he immediately mentioned an API method called showAddConnectionsUI which enables a user to establish multiple, simultaneous connections with different social networks. This method has become an unexpected windfall for us because we now have social filtering on all types of data. What’s more, these connections are persisted so the next time the user logs into our system, we (via Gigya) know exactly which providers they’re connected to.
5. Aggregated Social Graph
If every social network the user connected to remained separate, we’d be forced to make multiple API calls (one for each social network) and then aggregate the results. With Gigya, any information retrieved for the user is aggregated from all the social networks and any operation can be automatically performed on all the social networks. This has been extremely useful for us. For example, all we have to do is pass “facebook” and “twitter” as parameters to getFriendsInfo() and Gigya returns the complete friend list from both providers in a normalized recordset. We also use a parameter called “siteUsersOnly” which limits the recordset to friends who are users of our application.
The biggest compliment I can give Gigya is that it simply works as advertised. I definitely encourage developers to take a strong look at the platform.