Kategorier
Blogginlägg

Implementera ett enkelt login koncept som fungerar över flera sajter

Idag tänkte jag skriva om hur jag har gått tillväga för att implementera inloggningsfunktionerna i vårt nya koncept byggmedia. Även fast jag jobbar mest med Hem & Harmoni (www.hemochharmoni.se) nu så måste vi implementera ett sätt som fungerar för hela konceptet och övriga sajter i samma familj.

Detta är några av baskraven jag vill uppnå:

  1. Våra medlemmar ska bara ha ett medlemskonto, men ändå möjlighet att använda medlemsfunktionerna på andra sajter i samma familj
  2. Möjlighet att vara social på andra sajter i samma familj (dvs svara på trådar, gästböcker, lägga upp annonser, prenumerera på flöden osv)
  3. Medlemmens profil ska kunna visas på inlägg, bloggar osv utan att behöva registrera nya konton på andra sajter i familjen. Klick på profilen bör kanske gå till ursprungssajten.
  4. Besökslistor och andra liknande funktioner ska kunna visa vilka andra medlemmar på de andra systersajterna som varit inne och tittat på sitt material
  5. Den registrerade signaturen ska kunna reserveras på övriga sajter i familjen första gången man registrerar sig på någon av sajterna, vilket är en förutsättning så inte profiler med samma namn dyker upp från olika sajter inom samma diskussionsämnen osv.

Jag har löst de flesta av ovan grundkrav med lite olika teknologier och implementeringar på ett enkelt och smidigt sätt. Utmaningen var svårare än jag trodde, och det dyker hela tiden upp hinder som jag inte tänkt på när man praktiskt börja använda implementeringen. Det har inte varit lätt att tänka på alla detaljer i förväg. Här är i alla fall de lösningar jag valt att implementera:

  • OpenID används för inloggning och det är det enda inloggningsalternativet vilket är naturligt eftersom  vi inte behöver ta hänsyn till några tidigare konton. Detta är trots allt en helt nya sajter, så inloggningsformuläret är superenkelt, finns bara ett fält att logga in med och det är sin OpenID URI
  • Vi löser problemet med nyregistreringar genom att även vara en ”OpenID provider”, så vi har även en sådan öppen server för alla att registrera sitt helt egna OpenID för de som inte vill skaffa en genom andra sajter.
  • En OpenID inloggning kräver inte att man måste skapa en profil på sajten, man kan göra saker på sidan utan en profil vilket underlättar och förenklar processen betydligt. När man är redo, har tid eller tycker sajten är bra kan man komplettera med en profil om man vill.
  • Reservation av en signatur kan man även göra automatiskt på övriga syskonsajter i familjen i upp till 6 månader. Innan den tiden måste man ha loggat in på syskonsajterna för att få den reserverade signaturen.
  • Profildata hämtas från OpenID via protokollet SREG om det finns tillgängligt
  • Varje medlemskonto på respektive syskonsajt har en källhänvisning till sin ägarsajt som t.ex. används för att anpassa länk till profil osv.
  • All kommunikation mellan syskonsajterna för medlemsfunktioner är passiva, dvs det sker endast på begäran av medlemmen så man slipper säkerhetsproblemen med personuppgifter som annars skulle behöva automatbehandlas och utryckligen godkännas, gallras och loggas m.m.

Nu är det inte lång tid kvar innan ni själva kan få testa sajterna själva och se hur vi gjort alla dessa detaljer. Men vi har tänkt igenom varje liten detalj väldigt noga för det är just det vi tror är den framgångsrika faktorn, att man gör detaljerna rätt.

Om nu vi går in ännu djupare i inloggningsförfarandet så är den lilla detaljen om hur man hanterar stegen det som avgör hur folk uppfattar sajten som helhet. Till exempel så är det ofta man kommer till en sajt där man läst någon intressant diskussion och så vill man gärna delta och lägga sin åsikt i sammanhanget, som ny användare måste man oftast gå igenom en lång process att svara på en massa registreringsfrågor vänta på bekräftelsemail för att sedan bekräfta med kod och sedan försöka leta sig tillbaka till tråden för att svara om man ens hittar den sen.

Vi har skippat hela det där krångliga förfarandet och gjort det superenkelt. När man hamnar i den situationen på vår sida, klickar man på att logga in (har man inget OpenID behöver man inte registrera profil eller något annat utan du kan direkt regga ett nytt OpenID med Captcha utan att bekräfta på mail och liknande) och postar svaret direkt eftersom man är fortfarande kvar i diskussionen man kom till från början (hela sajten är nämligen implementerad i AJAX). Vi hoppas naturligtvis att när användaren vill fördjupa sig i sajten så kommer användaren komplettera med mer uppgifter till sin profil osv, men som sagt det är inte ett krav i just initialsteget.