Facebook og/eller Twitter som login-modul

Kan alle som har en konto på enten Facbook eller Twitter holde opp en hånd? Nå kan jeg riktignok ikke se hvor mange hender som holdes opp, men i følge tvitre.no og checkfacebook.com er det en hel del.

facebookers

twittrere

Folk flest, meg selv inkludert, har et stadig økende antall kontoer rundt omkring på nettet. Passord er vanskelig å huske og derfor har man en tendens til å bruke et enkelt et som er felles for alle disse kontoene som man signer opp på helt ukritisk. Eller man prøver å ha forskjellige og gode passord, men glemmer dem med en gang man trykker SignUp-knappen. Så hvorfor ikke bruke et brukernavn og passord som man allered har? Både Facebook (FB) og Twitter har funksjonalitet som lar eksterne nettsteder bruke dem som en såkalt “delegated sign-in provider”. La oss se litt på hvor enkelt det er å ta i bruk.

Facebook Connect

Facebook Connect er en tjeneste fra FB som lar deg gjøre flere ting, som f.eks. identitetssjekking, linking til FB-venner, FB-deling og autentisering.

Autentiseringen kan integreres i andre nettløsninger og logger inn brukerne med fire enkle steg:

  1. Når en bruker går til nettsiden, kan man bruke FB Connect sitt javascriptbibliotek for å sjekke om brukeren allerede er logget inn på FB
  2. Hvis det er tilfellet kan man enten redirecte brukeren til et “innlogget”-view eller oppdaterer siden inline med Javascript (sikkert det smootheste)
  3. Hvis brukeren ikke er logget inn kan man enten vise connect på den nåværende siden eller redirecte til en egen loginside
  4. Når connect trykkes starter login-prosessen og den vil i sin tur igjen kalle et javascript-callback som man har registrert

Og det var det!

FB Connect kan brukes direkte i en hel bråte programmeringsspråk via forskjellige klientbiblioteker (både offisielle og tredjeparts). Jeg nevner i fleng Java, Python, Ruby on Rails, og til og med Lisp og Erlang.

Nettet florerer med nettsteder som bruker Facebook Connect enten som bare autentisering eller også med mer avansert FB-funksjonalitet, men posterous og den nye diggbar er gode eksempler på en velykket integrasjon.

posterous

diggbar

Som om ikke det var nok har FB blitt medlem av OpenID Foundation og støtter OpenID-innlogging med kontoer fra bl.a. Google, Yahoo og Myopenid.

Se Facebooks dokumentasjon for flere detaljer

Logg inn med Twitter, OAuth-Style

Twitter er heller ikke dårligere enn at de har lansert sin egen delegerte login-løsning, Sign-in with Twitter.

I motsetning til Facebooks løsning som er proprietær, er dette helt standard OAuth.OAuth er i følge oauth.net:

An open protocol to allow secure API authorization in a simple and standard method from desktop and web applications.

Måten man blir logget inn på er så og si identisk med den 4-stegsprosessen beskrevet i avsnittet om Facebook så jeg skal ikke repetere det, og i praksis kan man bruke dem på samme måte og i samme løsning.

Twitters løsning har nok alle de tusenvis av tredjeparts twitter-applikasjoner og -nettsider som finnes som hovedmålgruppe, og autentiseringen er en innebygget del av det åpne API’et som brukes ved utvikling av slike tredjeparts-tjenester. Eksemplene under på løsninger som bruker Twitter OAuth er også twitterrelaterte.

DestroyTwitter

twitpic

Edit:

Jeg ble spurt om følgende av en kollega i et annet fora:

“Bruker destroytwitter og twitpic egentlig oauth? Mulig jeg har misforstått, men jeg trodde hensikten var at en tredjepart ikke skulle motta passordet i det hele tatt.”

Og svaret er: Nei dessverre ikke! Disse to tjenestene bruker ikke OAuth, de benytter seg bare av muligheten i Twitters API til å logge inn utenfra med brukernavn og passord.

Det er ikke så lett å finne “real life”-eksempler på nettløsninger som bruker Twitters OAuth slik den skal, men min favoritt microblog-tjeneste posterous
har også denne innenfor beltet.

posterous.com bruker ekte Twitter OAuth

posterous.com bruker ekte Twitter OAuth

Min kollegas (berettigede) frykt for løsningene DestoryTwitter og twitpic bruker:

“Jeg liker ikke å oppgi passordet for en tjenteste til andre tjenester. Da går man lett i phishing-fella.”

Denne artikkelen på blogen til Cris Messina forklarer på en meget god måte hvorfor det er en dårlig idé å bruke login-integrasjon hvor brukeren må oppgi brukernavn og passord til en tredjepart.

Twitters API har en egen wiki hvor det står mer om Twitter OAuth.

Gjør det enklest mulig for brukeren

Konklusjonen blir, enten man velger Facebook Conect, Twitter OAuth, OpenID eller alle tre, at en slik delegert login-løsning forbedrer brukeropplevelsen. Man synes det er lettvint og trygt å logge seg på via en kjent logo (f.eks. Facebook). Kanskje man til og med senker terskelen for å faktisk opprette en konto på nettop dette nettstedet og ta dets tjenester i bruk. Og det er jo nettopp det vi som utviklere ønsker og oppnå!

Kilder og ressurser

2 Comments

  1. Posted 19/06/2009 at 05:18 | Permalink

    Har editert innlegget litt etter at jeg ble gjort oppmerksom på at DestroyTwitter og twitpic ikke var særlig gode eksempler på bruk av Twitter OAuth iom. at de faktisk ikke benytter seg av OAuth-funksjonaliteten i det heletatt.

    Hvis noen har andre gode eksempler på nettjenester som integrerer med Twitter OAuth er jeg interessert i å høre om dem her i kommentarene. Det gjelder forsåvidt tjenester som integrerer med Facebook Connect også.

  2. Posted 19/06/2009 at 07:30 | Permalink

    Twittercut-scammen som flere ble utsatt for (inkludert meg selv) er forresten et bra eksempel på hvordan det går når folk ukritisk oppgir Twitter-brukernavn/passord.

    http://mashable.com/2009/05/26/twittercut-scam/

Post a Comment

Your email is never shared. Required fields are marked *

*
*

Spam Protection by WP-SpamFree