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

2012 POSSCON Changing the Face of Identity in E...

2012 POSSCON Changing the Face of Identity in Ecommerce

March 2012 presentation on open source Ecommerce identity for POSSCON (Columbia, SC)

Jonathan LeBlanc

March 23, 2012
Tweet

More Decks by Jonathan LeBlanc

Other Decks in Technology

Transcript

  1. In  Ecommerce   Changing  the  Face  of  Open  Iden2ty  

    Jonathan  LeBlanc   Developer  Evangelist   Twi9er:  @jcleblanc   E-­‐Mail:  [email protected]   Github:  github.com/jcleblanc  
  2. h9p://www.x.com   h9p://slidesha.re/posscon_idenGty   What  is  user  idenGty?   How

     can  you  use  grouping  to  personalize?   How  do  you  pick  the  right  idenGty  tool?   How  does  PayPal  Access  help?   What  We’re  Going  to  Cover  
  3. h9p://www.x.com   h9p://slidesha.re/posscon_idenGty   What  is  user  iden2ty?   How

     can  you  use  grouping  to  personalize?   How  do  you  pick  the  right  idenGty  tool?   How  does  PayPal  Access  help?   What  We’re  Going  to  Cover  
  4. h9p://www.x.com   h9p://slidesha.re/posscon_idenGty   Are  you  tracking  what  a  user

     is  viewing?     Are  you  categorizing  your  users?     Are  you  incenGvizing  your  users?   Iden2ty:  Sta2s2cs  From  User  Browsing  Data  
  5. h9p://www.x.com   h9p://slidesha.re/posscon_idenGty   What  is  user  idenGty?   How

     can  you  use  grouping  to  personalize?   How  do  you  pick  the  right  idenGty  tool?   How  does  PayPal  Access  help?   What  We’re  Going  to  Cover  
  6. h9p://www.x.com   h9p://slidesha.re/posscon_idenGty   What  Have  We  Learned  Thus  Far?

      IdenGty  is  more  than  just  a  login   Grouping  provides  insight  into  users  
  7. h9p://www.x.com   h9p://slidesha.re/posscon_idenGty   What  is  user  idenGty?   How

     can  you  use  grouping  to  personalize?   How  do  you  pick  the  right  iden2ty  tool?   How  does  PayPal  Access  help?   What  We’re  Going  to  Cover  
  8. h9p://www.x.com   h9p://slidesha.re/posscon_idenGty   Iden2ty  Tools:  Proprietary  or  Open?  

    23  %    of  customers  abandoned  carts  when   asked  to  register.  (Forrester)     45  %    le[  a  site  when  they  couldn’t  remember   their  password.  (Blue  Inc)  
  9. h9p://www.x.com   h9p://slidesha.re/posscon_idenGty   Iden2ty  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  idenGty?   Do  you  sell  anything?  
  10. h9p://www.x.com   h9p://slidesha.re/posscon_idenGty   Iden2ty  Tools:  Selling  Goods   Graph

     source  provided  by  Digitas  (h9p://rww.readwriteweb.netdna-­‐cdn.com/teaser.jpg)  
  11. h9p://www.x.com   h9p://slidesha.re/posscon_idenGty   Iden2ty  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”   }  
  12. h9p://www.x.com   h9p://slidesha.re/posscon_idenGty   What  Have  We  Learned  Thus  Far?

      IdenGty  is  more  than  just  a  login   Grouping  provides  insight  into  users   The  right  tool  should  work  for  your  needs  
  13. h9p://www.x.com   h9p://slidesha.re/posscon_idenGty   What  is  user  idenGty?   How

     can  you  use  grouping  to  personalize?   How  do  you  pick  the  right  idenGty  tool?   How  does  PayPal  Access  help?   What  We’re  Going  to  Cover  
  14. h9p://www.x.com   h9p://slidesha.re/posscon_idenGty   PayPal  Access:  The  Core  Principals  

    IdenGty  is  more  than  just  a  login   Grouping  provides  insight  into  users   The  right  tool  should  work  for  your  needs  
  15. h9p://www.x.com   h9p://slidesha.re/posscon_idenGty   •  Create  an  applicaGon  at  devportal.x.com.

      •  Forward  the  user  to  PayPal  to  authenGcate.   •  Exchange  the  response  code  for  an  access   token.   •  Use  the  access  token  to  collect  user  data.   PayPal  Access:  Implementa2on  Example  
  16. 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',  'h9ps://idenGty.x.com/xidenGty/resources/authorize');   define('TOKEN_ENDPOINT',  'h9ps://idenGty.x.com/xidenGty/oauthtokenservice');   define('USER_ENDPOINT',  'h9ps://idenGty.x.com/xidenGty/resources/profile/me');     func2on  run_curl($url,  $method  =  'GET',  $postvals  =  null){  ...  }   ?>  
  17. PayPal  Access:  Forwarding  for  Login   <?php   require_once  "common.php";

        $auth_url  =  sprinW(          "%s?scope=%s&response_type=code&redirect_uri=%s&client_id=%s",          AUTHORIZATION_ENDPOINT,          urlencode("h9ps://idenGty.x.com/xidenGty/resources/profile/me"),          urlencode(CALLBACK_URL),          KEY);     //forward  user  to  PayPal  auth  page   header("LocaGon:  $auth_url");   ?>    
  18. 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  =  sprinW("client_id=%s&client_secret= %s&grant_type=authorizaGon_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));    
  19. PayPal  Access:  Using  the  Access  Token   //construct  URI  to

     fetch  profile  informaGon  for  current  user   $profile_url  =  sprinW("%s?oauth_token=%s",   PROFILE_ENDPOINT,  $token-­‐>access_token);     //fetch  profile  of  current  user   $profile  =  run_curl($profile_url);     var_dump($profile);   ?>    
  20. h9p://www.x.com   h9p://slidesha.re/posscon_idenGty   Verified  Account   Language   First

     Name   Last  Name   Full  Name   Emails   PayPal  Access:  The  Raw  Data   Addresses   Telephone  Number   Date  of  Birth   Time  zone   Gender  
  21. h9p://www.x.com   h9p://slidesha.re/posscon_idenGty   PayPal  Access:  The  Data  Sources  

    TransacGon   Recency   TransacGon   Frequency   AcGvity   Class   Average   Spent  
  22. h9p://www.x.com   h9p://slidesha.re/posscon_idenGty   Seamless  Checkout  Simplifica2on   User  is

     already  known  –  no   login  needed.     Simplified  checkout  with  a   single  review  step.  
  23. h9p://www.x.com   h9p://slidesha.re/posscon_idenGty   In  The  End…   Data  should

     help,  not  hinder   IdenGty  should  help  extend   your  business  
  24. h9p://www.x.com   h9p://slidesha.re/posscon_idenGty   Looking  for  Partners   Early  Access

     to  alpha   release  products     Direct  support  from   evangelism  &  engineering    
  25. h9p://slidesha.re/posscon_idenGty   Thanks  For  Joining  Me!   Jonathan  LeBlanc  

    Developer  Evangelist   Twi9er:  @jcleblanc   E-­‐Mail:  [email protected]   Github:  github.com/jcleblanc