AutoLoginShare

Overview


AutoLogin allows you to log-in your customers from external application/website with customer email address.

The power of AutoLogin feature is that you are not forced to redirect user anywhere after log-in into your application, all actions are taken in the background, between your application's server and HostBill's.
Additionally you can auto-logout customers once they log-out of your application.

Connecting your application and auto-login should work with this flow:

  1. Client logs-in into your application
  2. Your application generates access hash from user email + secret from module configuration
  3. Your application HTTP POST this hash to Auto-Login module
  4. Module authenticates customer, and returns url that you should link your application from. I.e.: via "Access billing portal" link 
  5. Once customer visits this link he/she will be automatically logged in.
  6. [Optional] When customer logs out of your application, it POST request to log-out customer from HostBill too
  7. [Optional] You can use 'redirect' parameter to generate URL that redirects clients to a specific resource. 

Activating the module


The plugin installation can be done in three steps:

  1. Download AutoLoginShare from your client area
  2. Upload and unzip it in your HostBill root directory
  3. Activate it in your module manager in HostBill (SLAVE)

To update to newer version you will just have to repeat step 1 & 2, or check Auto-Update plugin built into your HostBill for one click updates.

MASTER API settings


After generating API key in your MASTER HOSTBILL→ adminarea → Settings → Security → API Access, you can limit ACL to two functions: getClientDetails & verifyClientLogin

Module Configuration


After activating your module in SLAVE HostBill you need to provide:

  1. URL to your MASTER HostBill adminarea
  2. API ID from your MASTER HostBill
  3. API KEY from your MASTER HostBill
  4. Optionally, you can disable client registration in SLAVE HostBill by enabling block_registrations
  5. Tick Check for paid if you want to enable only the clients who had paid for something to login to your Master HostBill 

Code sample: Login customer


Code sample below is in PHP using cURL.

Sample log-in code

<?php
 
// Get cURL resource
$ch = curl_init();
// Set AutoLogin url
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 
// Data to post:
$email= "user@email.com"; //Client's email address
$duration = "160"; //Time in seconds for how long user login link will work
$secret = "SECRET_CODE"; //Secret code set in module configuration (in previous step)
$hash = md5($email.$secret.$duration); //Verification string
 
$body = http_build_query([
    'email'=>$email,
    'duration'=>$duration,
    'hash'=>$hash,
]); //data to post
 
// Set POST data
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
 
// Send the request & save response to $resp
$resp = curl_exec($ch);
 
if(!$resp) {
  die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
} else {
   $array = json_decode($resp,true);
   if($array['success']) {
        $login_url = $array['login_url'];  //url to link customer to HostBill
        $token = $array['token']; //token we can use to log user out
   } else {
    die('Error: "' . $array['error'] .'"');
   }
}
 
curl_close($ch);

Code sample: Logout customer


Code sample below is in PHP using cURL.

Sample log-out code

<?php
 
// Get cURL resource
$ch = curl_init();
// Set AutoLogin url
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 
// Data to post:
$token = ""; //Login token returned upon user auto-login (previous step)
 
$body = http_build_query([
    'token'=>$token
]); //data to post
 
// Set POST data
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
 
// Send the request
$resp = curl_exec($ch);
curl_close($ch);