420 likes | 432 Views
March 2012 talk at Confoo (confoo.ca) on defining user identity.
E N D
Defining User Identity True Identity VS Anonymity Jonathan LeBlanc Developer Evangelist: X.commerce Email: jleblanc@x.com Twitter: @jcleblanc
What We’re Going to Cover The Foundations of Human Identity Tribalism and Social Grouping The Big Bag of Social Identity Fail Experimental Identity Methods X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
What We’re Going to Cover The Foundations of Human Identity Tribalism and Social Grouping The Big Bag of Social Identity Fail Experimental Identity Methods X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Human Identity: User Types Anonymous Users Real Identity Login X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Human Identity: Open Identity Programming OAuth (1.0a + 2.0) PayPal Access, Facebook, Twitter OpenID (…and the upcoming OpenID Connect) PayPal Access, Google, Yahoo! BrowserID Mozilla X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Human Identity: Anonymous Users X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Human Identity: Tracking Anonymous Users There are a few common options Tracking Cookie Local Storage X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Human Identity: Tracking Anonymous Users Program Overview • On each page visited, track the URL • HTML5 Local Storage as primary storage • Cookies as secondary storage X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Tracking Anonymous Users with Local Storage var storeName = "visited"; if (typeof(localStorage) == 'undefined' ) { //Local Storage Not Available } else { try { var sites = localStorage.getItem(storeName); sites = (sites === null) ? window.location : sites + window.location; localStorage.setItem(storeName, sites + "|"); } catch (e) { if (e == QUOTA_EXCEEDED_ERR) { //quota exceeded } } }
Tracking Anonymous Users with Cookies function readCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' '){ c = c.substring(1, c.length) }; if (c.indexOf(nameEQ) == 0){ return c.substring(nameEQ.length, c.length); } } return null; }
Tracking Anonymous Users with Cookies var storeName = "visited"; if (typeof(localStorage) == "undefined" ) { var cookieVal = readCookie(storeName); var value = ((cookieVal === null) ? window.location : cookieVal + window.location); var days = 1; var date = new Date(); date.setTime(date.getTime() + (days*24*60*60*1000)); var expires = "; expires=" + date.toGMTString(); document.cookie = storeName + "=" + value + "|" + expires + "; path=/"; } else { //Use Local Storage }
Human Identity: Tracking Anonymous Users Next Steps / Improvements • Remove oldest results when storage fills • Build categorization mapping prior to storage to save space (more on this later) X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Human Identity: Real Identity Users X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Human Identity: Real Identity Sources Sources of Real Identity Social (perceived) Concrete (true) X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Human Identity: BrowserID X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Human Identity: BrowserID BrowserID Source <script src="https://browserid.org/include.js" type="text/javascript"></script> JQuery Source <script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script> X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Human Identity: BrowserID navigator.id.get(function(assertion) { if (assertion) { $.ajax({ url: 'https://browserid.org/verify', type: 'POST', data: 'assertion='+assertion+'&audience=jcleblanc.com', success: function(res) { console.log(res); } }); }); X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Human Identity: BrowserID JSON Results { audience: "jcleblanc.com", email: "nakedtechnologist@gmail.com", expires: 1320081400987, issuer: "browserid.org", status: "okay" } X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
What We’re Going to Cover The Foundations of Human Identity Tribalism and Social Grouping The Big Bag of Social Identity Fail Experimental Identity Methods X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Social Grouping: It’s Not A New Thing… X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Social Grouping: Foundation in Tribalism Tribalism started as a way to keep us safe …it has lead to some horrible parts of history but it is also a foundation of many of our social relationships X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Social Grouping: The Real Life Social Graph X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Social Grouping: The Online Social Graph X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Social Grouping: Group Types Follower Type Connection Type Group Type X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Social Grouping: Data Miners are Rock Stars X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Social Grouping: Group Programming Primer Program Overview • Use all URLs from the previous program. • Obtain content category for page. • Categorize user interest. X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Social Grouping: Group Programming Primer Step 1: Obtain Website Content X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Social Grouping: Group Programming Primer Step 2: Perform Keyword Density Search X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Social Grouping: Group Programming Primer Step 3: Weight Keywords X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
What We’re Going to Cover The Foundations of Human Identity Tribalism and Social Grouping The Big Bag of Social Identity Fail Experimental Identity Methods X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Social Identity Fail: Personal Safety When Social Discovery Impacts Personal Safety “My privacy concerns are not trite. They are linked to my actual physical safety” --Harriet Jacobs (Gizmodo) X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Social Identity Fail: Privacy Concerns When Making Things Easy Impairs Privacy “Path Uploads Your Entire iPhone Contact List By Default” --Mark Hachman (PCMag) X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Social Identity Fail: The Fine Line The Fine Line Between Insightful and Creepy “How Target Figured Out A Teen Girl Was Pregnant Before Her Father Did” --Kashmir Hill (Forbes) X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
What We’re Going to Cover The Foundations of Human Identity Tribalism and Social Grouping The Big Bag of Social Identity Fail Experimental Identity Methods X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Experimental Identity: WebFinger X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Experimental Identity: WebFinger Step 1: Perform Discovery curl https://gmail.com/.well-known/host-meta X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Experimental Identity: WebFinger <XRD xmlns='http://docs.oasis.open.org/ns/xri/xrd-1.0' xmlns:hm='http://host-meta.net/xrd/1.0'> <hm:Host xmlns='http://host-meta.net/xrd/1.0'>gmail.com </hm:Host> <Link rel='lrdd' template='http://www.google.com/s2/webfinger/?q={uri}'> <Title>Resource Descriptor</Title> </Link> </XRD> X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Experimental Identity: WebFinger Step 2: Collect User Data curl http://www.google.com/s2/webfinger/?q=nakedt echnologist@gmail.com X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Experimental Identity: WebFinger User Profile http://www.google.com/profiles/nakedtechnolo gist Portable Contacts http://www- opensocial.googleusercontent.com/api/people/1 18167121283215553793/ X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Experimental Identity: WebFinger profileUrl id thumbnail url urls photos name formatted family name given name display name X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Identity Programming Core Concepts Identity is more than just a login Authentication is just the first step Find the tool that: – Has the raw data that you need – Works with your business X.Commerce (eBay Inc.) http://www.x.com | @x_commerce
Thanks! Any Questions? http://slidesha.re/confoo_identity2 Jonathan LeBlanc Email: jleblanc@x.com Twitter: @jcleblanc Github: https://github.com/jcleblanc