Give your clients options, not obstacles.

Let your customers decide who they trust on your login screen. Use the standard social identity providers or let your customers configure settings based on their own corporate policies.

Homepage
Homepage

Keep your database & workflows.

Just add the IDP’s you need or want.

Homepage

Deploy Anywhere

Cloud & Private Cloud deployment on AWS, Azure & Google. Local deployments are available via Docker image.

Get started
Homepage
Homepage

LogonLabs powers over 5,000 login screens today.

100% Cloud up-time 2018-2020.
99.99% SLAs are available with our geo-location deployments.

Stay Compliant.

We did the hard work so you
can take the credit.

So simple a typical customer can implement within the same day. No need to migrate your user database.

Once your account is set up it just takes two snippets of code.

Existing users do not have to re-register.

Add this to your front end
JavaScript
Swift
<!DOCTYPE html>
<html>
  <head>
    <title>LogonLabs Sample</title>
    <style> .logonlabs { width: 300px; } </style>
    <script>
      window.logonAsync = function() {
        LogonClient.configure({
          app_id: '{APP_ID}'
        });
        LogonClient.ui.button('logonlabs-buttons');
        LogonClient.ui.button('logonlabs-icons', {
          theme: 'icon'
        });
      };
    </script>
    <script async defer src="https://cdn.logonlabs.com/dist/logonlabs.min.js"/>
  </head>
  <body>
    <h2>LogonLabs Sample</h2>
    <div id="logonlabs-buttons" class="logonlabs"></div>
    <div id="logonlabs-icons" class="logonlabs"></div>
  </body>
</html>

                        
import LogonLabs;


var body: some View {
    VStack {
        Button(action: {
            let logonClient = LogonClient(
                baseUri: "https://api.logonlabs.com",
                appId: "{APP_ID}");

            logonClient.startLogin(
                identity_provider: "google",
                destinationUrl: "{APP_URL_SCHEME}") {error in
                if(error != nil) {
                    print(error.description!)
                  }
                }
        }) {
          Text("Start SSO Workflow")
        }
    }
}

                        
Add this to your back end
PHP
.NET
JAVA
PYTHON
NODE.JS
<?php
require(__DIR__ . '/vendor/autoload.php');

use LogonLabs\IdPx\API\LogonClient as LogonClient;
use LogonLabs\IdentityProviders as IdentityProviders;

$logonClient = new LogonClient(array(
    'app_id' => '{APP_ID}',
    'app_secret' => '{APP_SECRET}',
    'app_path' => 'https://api.logonlabs.com'
    
));

$token = $_REQUEST['token'];

$loginData = $logonClient->validateLogin($token);

if ($loginData['body']['event_success']) {
    // authentication and validation succeeded.
    // proceed with post-auth workflows for your system.
}

                        
var logonClient = new LogonLabs.IdPx.API.LogonClient(
  "{APP_ID}", 
  "https://api.logonlabs.com", 
  "{APP_SECRET}"
);

var token = this.Request.Query[Constants.QueryString.token];

var loginData = logonClient.ValidateLogin(token);

if (loginData.event_success)
{
  // authentication and validation succeeded.
  // proceed with post-auth workflows for your system.
}

                
import com.logonlabs.LogonClient;
import com.logonlabs.dtos.ValidateLoginResponse;
import com.logonlabs.dtos.SsoValidationDetails;

LogonClient client = new LogonClient(
  "{APP_ID}",
  "{APP_SECRET}",
  "https://api.logonlabs.com");

String queryToken = client.parseToken(callbackUrl);

ValidateLoginResponse response = client.validateLogin(queryToken);

if(response.isEventSuccess()) {
  //authentication and validation succeeded. 
  //proceed with post-auth workflows for your system.
}

from logonlabs.client import Logonlabs

logonClient = Logonlabs(
  '{APP_ID}',
  '{APP_SECRET}',
  'https://api.logonlabs.com'
)

request_headers = self.headers
token = request_headers["token"]
response = logonClient.validateLogin(token)
data = response.json()
if data['event_success']:
  # authentication and validation succeeded.
  # proceed with post-auth workflows for your system.


                        
const client = require('logonlabs-nodejs');
        ('{APP_ID}',
        '{APP_SECRET}',
        'https://api.logonlabs.com'
);

let token = client.parseToken(callback_url);

let response = client.validateLogin(token);

if(response.isEventSuccess()) {
  // authentication and validation succeeded.
  // proceed with post-auth workflows for your system.

}