Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Confoo 2012: Changing the Face of Open Identity...

Confoo 2012: Changing the Face of Open Identity in Ecommerce

Open ecommerce identity talk at Confoo (March, 2012)

Jonathan LeBlanc

March 02, 2012
Tweet

More Decks by Jonathan LeBlanc

Other Decks in Technology

Transcript

  1. Changing  the  Face  of  Iden0ty   In  Ecommerce   Jonathan

     LeBlanc   Developer  Evangelist:  X.commerce   Joind.In:  h;ps://joind.in/6100   Email:  [email protected]   Twi;er:  @jcleblanc  
  2. X.Commerce  (eBay  Inc.)   h;p://www.x.com  |  @x_commerce   What  is

     user  idenSty?   How  can  you  use  grouping  to  personalize?   How  do  you  pick  the  right  idenSty  tool?   How  does  PayPal  Access  help?   What  We’re  Going  to  Cover  
  3. X.Commerce  (eBay  Inc.)   h;p://www.x.com  |  @x_commerce   What  is

     user  idenSty?   How  can  you  use  grouping  to  personalize?   How  do  you  pick  the  right  idenSty  tool?   How  does  PayPal  Access  help?   What  We’re  Going  to  Cover  
  4. X.Commerce  (eBay  Inc.)   h;p://www.x.com  |  @x_commerce   Are  you

     tracking  what  a  user  is  viewing?     Are  you  categorizing  your  users?     Are  you  incenSvizing  your  users?   IdenSty:  StaSsScs  From  User  Browsing  Data  
  5. X.Commerce  (eBay  Inc.)   h;p://www.x.com  |  @x_commerce   IdenSty:  The

     Different  IdenSty  Models   Anonymous   IdenSty  
  6. X.Commerce  (eBay  Inc.)   h;p://www.x.com  |  @x_commerce   IdenSty:  The

     Different  IdenSty  Models   Perceived   IdenSty  
  7. X.Commerce  (eBay  Inc.)   h;p://www.x.com  |  @x_commerce   IdenSty:  The

     Different  IdenSty  Models   True  (Verified)   IdenSty  
  8. X.Commerce  (eBay  Inc.)   h;p://www.x.com  |  @x_commerce   What  Have

     We  Learned  Thus  Far?   IdenSty  is  more  than  just  a  login  
  9. X.Commerce  (eBay  Inc.)   h;p://www.x.com  |  @x_commerce   What  is

     user  idenSty?   How  can  you  use  grouping  to  personalize?   How  do  you  pick  the  right  idenSty  tool?   How  does  PayPal  Access  help?   What  We’re  Going  to  Cover  
  10. X.Commerce  (eBay  Inc.)   h;p://www.x.com  |  @x_commerce   What  Have

     We  Learned  Thus  Far?   IdenSty  is  more  than  just  a  login   Grouping  provides  insight  into  users  
  11. X.Commerce  (eBay  Inc.)   h;p://www.x.com  |  @x_commerce   What  is

     user  idenSty?   How  can  you  use  grouping  to  personalize?   How  do  you  pick  the  right  idenSty  tool?   How  does  PayPal  Access  help?   What  We’re  Going  to  Cover  
  12. X.Commerce  (eBay  Inc.)   h;p://www.x.com  |  @x_commerce   IdenSty  Tools:

     Proprietary  or  Open?   23  %    of  customers  abandoned  carts  when   asked  to  register.  (Forrester)     45  %    leg  a  site  when  they  couldn’t  remember   their  password.  (Blue  Inc)  
  13. X.Commerce  (eBay  Inc.)   h;p://www.x.com  |  @x_commerce   IdenSty  Tools:

     It’s  Simpler  Than  You  Think   What  kind  of  raw  user  data  do  you  need?   In  what  ways  do  you  want  to  personalize   your  product  with  idenSty?   Do  you  sell  anything?  
  14. X.Commerce  (eBay  Inc.)   h;p://www.x.com  |  @x_commerce   IdenSty  Tools:

     Selling  Goods   Graph  source  provided  by  Digitas  (h;p://rww.readwriteweb.netdna-­‐cdn.com/teaser.jpg)  
  15. X.Commerce  (eBay  Inc.)   h;p://www.x.com  |  @x_commerce   IdenSty  Tools:

     Raw  User  Data   {          "addresses":[{                  "state":"CA”,                    "street1":"1339  moonlight  way”,                  "city":"New  York",                  "zip":"92345”          }],          "emails”:["[email protected]"],          "firstName":"John",          "lastName":"Smith",          "telephoneNumber":"2123935554”   }  
  16. X.Commerce  (eBay  Inc.)   h;p://www.x.com  |  @x_commerce   What  Have

     We  Learned  Thus  Far?   IdenSty  is  more  than  just  a  login   Grouping  provides  insight  into  users   The  right  tool  should  work  for  your  needs  
  17. X.Commerce  (eBay  Inc.)   h;p://www.x.com  |  @x_commerce   What  is

     user  idenSty?   How  can  you  use  grouping  to  personalize?   How  do  you  pick  the  right  idenSty  tool?   How  does  PayPal  Access  help?   What  We’re  Going  to  Cover  
  18. X.Commerce  (eBay  Inc.)   h;p://www.x.com  |  @x_commerce   PayPal  Access:

     The  Core  Principals   IdenSty  is  more  than  just  a  login   Grouping  provides  insight  into  users   The  right  tool  should  work  for  your  needs  
  19. X.Commerce  (eBay  Inc.)   h;p://www.x.com  |  @x_commerce   •  Create

     an  applicaSon  at  devportal.x.com.   •  Forward  the  user  to  PayPal  to  authenScate.   •  Exchange  the  response  code  for  an  access   token.   •  Use  the  access  token  to  collect  user  data.   PayPal  Access:  ImplementaSon  Example  
  20. PayPal  Access:  The  Common  Code     <?php   define('KEY',

     'YOUR  APPLICATION  ID');   define('SECRET',  'YOUR  APPLICATION  SECRET');     define('CALLBACK_URL',  'YOUR  CALLBACK  PATH  -­‐  TO  COMPLETE.PHP');   define('AUTH_ENDPOINT',  'h;ps://idenSty.x.com/xidenSty/resources/authorize');   define('TOKEN_ENDPOINT',  'h;ps://idenSty.x.com/xidenSty/oauthtokenservice');   define('USER_ENDPOINT',  'h;ps://idenSty.x.com/xidenSty/resources/profile/me');     func0on  run_curl($url,  $method  =  'GET',  $postvals  =  null){  ...  }   ?>  
  21. PayPal  Access:  Forwarding  for  Login   <?php   require_once  "common.php";

        $auth_url  =  sprinB(          "%s?scope=%s&response_type=code&redirect_uri=%s&client_id=%s",          AUTHORIZATION_ENDPOINT,          urlencode("h;ps://idenSty.x.com/xidenSty/resources/profile/me"),          urlencode(CALLBACK_URL),          KEY);     //forward  user  to  PayPal  auth  page   header("LocaSon:  $auth_url");   ?>    
  22. PayPal  Access:  Obtaining  the  Access  Token   <?php   require_once

     "common.php";     //capture  code  from  auth   $code  =  $_GET["code"];     //construct  POST  object  for  access  token  fetch  request   $postvals  =  sprinB("client_id=%s&client_secret= %s&grant_type=authorizaSon_code&code=%s&redirect_uri=%s",            KEY,            SECRET,          $code,          urlencode(CALLBACK_URL));     //get  JSON  access  token  object   $token  =  json_decode(run_curl(ACCESS_TOKEN_ENDPOINT,  'POST',   $postvals));    
  23. PayPal  Access:  Using  the  Access  Token   //construct  URI  to

     fetch  profile  informaSon  for  current  user   $profile_url  =  sprinB("%s?oauth_token=%s",   PROFILE_ENDPOINT,  $token-­‐>access_token);     //fetch  profile  of  current  user   $profile  =  run_curl($profile_url);     var_dump($profile);   ?>    
  24. X.Commerce  (eBay  Inc.)   h;p://www.x.com  |  @x_commerce   Verified  Account

      Language   First  Name   Last  Name   Full  Name   Emails   PayPal  Access:  The  Raw  Data   Addresses   Telephone  Number   Date  of  Birth   Time  zone   Gender  
  25. X.Commerce  (eBay  Inc.)   h;p://www.x.com  |  @x_commerce   PayPal  Access:

     The  Data  Sources   TransacSon   Recency   TransacSon   Frequency   AcSvity   Class   Average   Spent  
  26. X.Commerce  (eBay  Inc.)   h;p://www.x.com  |  @x_commerce   Seamless  Checkout

     SimplificaSon   User  is  already  known  –  no   login  needed.     Simplified  checkout  with  a   single  review  step.  
  27. X.Commerce  (eBay  Inc.)   h;p://www.x.com  |  @x_commerce   Extending  IdenSty

     with  RecommendaSons   Recommended   Products   Similar   Products  
  28. X.Commerce  (eBay  Inc.)   h;p://www.x.com  |  @x_commerce   In  The

     End…   Data  should  help,  not  hinder   IdenSty  should  help  extend   your  business  
  29. X.Commerce  (eBay  Inc.)   h;p://www.x.com  |  @x_commerce   Looking  for

     Partners   Early  Access  to  alpha   release  products     Direct  support  from   evangelism  &  engineering    
  30. Thanks  for  joining  me!  Ques0ons?   Slides:  hMp://slidesha.re/confoo_iden0ty1   Jonathan

     LeBlanc   Developer  Evangelist:  X.commerce   Email:  [email protected]   Twi;er:  @jcleblanc   Github:  h;p://github.com/jcleblanc