Äventyr i molnet – del 4

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedIn

Jag ber om ursäkt för det långa uppehållet sedan förra delen. Förklaringen stavas Valle. Valle är en hund, närmare bestämt en Lagotto Romagnolo. Valle är nu snart ett år gammal, så nu har jag “fritid” igen. Wohoo!

Denna gång skall det handla om något som så gott som alla webappar behöver, nämligen användarhantering och autenticering.

Handen på hjärtat, visst vore det skönt att kunna plugga in en färdig användarhantering, och kunna låta folk logga in med sina redan existerande Facebook/Google/Windows Live/Twitter/whatever-konton?

Om svaret är ja, läs vidare!

OpenID

Det finns en standard för tredjepartsautenticering som heter OpenID, som så gott som alla stora sociala nätverk stödjer.

Problemet med OpenID är att det är ganska pilligt att få på plats, och det är inte helt uppebart för en användare hur han skall logga in med sitt OpenID.

Ett annat problem är att alla sociala nätverk har olika API:er för att hämta användardatat, efter att själva autenticeringen är klar.

Du måste dessutom bygga själva logindialogen själv. Detta är inte speciellt svårt, men ändock ett jobb.

Här kommer Janrain till din räddning!

Janrain

Janrain är en mäklare för tredjepartsautenticering.

De säger själva att de erbjuder användarhantering som en Software-as-a-Service (SaaS).

Janrain erbjuder ett uniformt API för att accessa de olika sociala nätverk som de stödjer. Det är dock vissa skillnader på vilka data om en användare som de olika nätverken lämnar ut. Till exempel så lämnar LinkedIn inte ut epostadresser, vilket åtminstone Google, Facebook och Windows Live gör.

Med Janrain är det lätt att lägga till användarhantering. Det går i princip till så här:

  1. Registrera din app på janrain.com. Du kan logga in med vilket som helst av dina sociala konton (Janrain äter sin egen hundmat!)
  2. Ange vilka sociala nätverk du vill använda för autenticering.
  3. Kör en wizard på Janrain som genererar en snutt Javascript som du kopierar in till din webbsida, omedelbart före .
  4. Wizarden genererar också en kodsnutt för HTML-länken Logga in…
  5. Implementera en callbackrutin som anropas av Janrain när en användare har autenticerat sig. URL:en till denna callbackrutin bestämmer du själv, och du anger den i wizarden i steg 3.
  6. Callbackrutinen anropas av Janrain med en HTTP POST som har en enda parameter, token. Denna token använder du tillsammans med den applikationsidentitet som du fick i steg 1 för att anropa ett Janrain API för att hämta användarinfon. API:et är en vanlig HTTP POST, som returnerar användardatat antingen i XML- eller JSON-format.

Klart!

Nu har du en komplett användarhantering, och dina användare kan direkt logga in och börja använda din sajt.

Klick på loginlänken öppnar en dialogbox som automatgenereras av Janrain-scriptet. I denna dialog kan användaren välja vilket nätverk han vill logga in på din sajt med.

I användardatat du får tillbaka från Janrain ingår en globalt unik OpenID-identitet. Denna kan du använda som nyckel för de applikationsspecifika användardata du vill spara i din egen databas. Du behöver inte lagra själva användardatat (namn, epostadress och så), för det får du ju serverat på nytt varje gång någon loggar in till din sajt.

Vill du stödja ett nätverk till? Logga in på janrain.com och ändra i kontrollpanelen för din app. (I många fall måste du dessutom registrera din Janrain-app hos nätverket i fråga.)

På janrain.com har din app en egen kontrollpanel där du kan se statistik på inloggningarna. Troligen inte det första du skulle bygga om du byggde användarhanteringen själv.

Funktioner för registering, glömt lösenord med mera finns ju redan på de olika sociala nätverken, så det slipper du också bygga.

Så sammantaget får du en komplett användarhantering på några timmar!

Så vad kostar det?

Det här låter för bra för att vara sant, det måste finnas en hake. Det kostar säkert skjortan?

Janrain kör med principen första silen gratis, dvs det är kostnadsfritt upp till 2500 unika användare och 6 st sociala nätverk.

För 100 USD/år kan du ha 5000 unika användare, och 12 sociala nätverk. Då får du dessutom tillgång till mer användardata än i gratisvarianten.

Räcker inte detta finns ytterligare en variant, men prislappen på denna är inte publicerad.

(Om det går så bra så att du får fler än 5000 unika användare är det bara att gratulera! Du har säkert råd med nästa nivå…)

4 Comments

  • 1
    2011-02-18 - 08:51 | Permalink

    Hej,

    vi inom universitet och högskolor har gjort en liknande produkt, fast den går mot SAML2 istället. Kolla in http://www.swami.se/english/startpage/products/idpproxysocial2saml.131.html

  • 2
    Henrik Kniberg
    2011-02-18 - 12:17 | Permalink

    Koolt! Tack för tipset!

  • 3
    2011-02-18 - 02:27 | Permalink

    Ser ut som en no-brainer att använda i sitt projekt. Tack för tipset!

  • 4
    Olle Hallin
    2011-02-18 - 07:43 | Permalink

    Här är den kompletta prislistan för Janrain

  • Leave a Reply

    Your email address will not be published. Required fields are marked *