Switch branches/tags
Nothing to show
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Bump version Aug 2, 2018
tests Refactor to expiresAt Aug 2, 2018
.gitignore Remove composers' lock file from repo Jul 1, 2018
CHANGELOG.md Bump version Aug 2, 2018
LICENSE Initial commit May 29, 2018
README.md Update usage example in README.md Oct 22, 2018
composer.json Lower PHP requirement to 7.0 Aug 1, 2018
phpunit.xml.dist Improve file token storage and add tests Jul 7, 2018

README.md

Hydro Raindrop SDK PHP

This package provides a suite of convenience functions intended to simplify the integration of Hydro's Raindrop authentication into your project. More information, including detailed API documentation, is available in the Raindrop documentation.

Raindrop comes in two flavors:

Client-side Raindrop

Client-side Raindrop is a next-gen 2FA solution. Hydro has open-sourced the code powering Client-side Raindrop.

Server-side Raindrop

Server-side Raindrop is an enterprise-level security protocol to secure APIs and other shared resources. Hydro has open-sourced the code powering Server-side Raindrop.

Installation instructions

composer require adrenth/raindrop-sdk

Usage example

require __DIR__ . '/../vendor/autoload.php';

$clientId = '...';
$clientSecret = '...';
$applicationId = '...';

$settings = new \Adrenth\Raindrop\ApiSettings(
    $clientId,
    $clientSecret,
    new \Adrenth\Raindrop\Environment\SandboxEnvironment
);

// Create token storage for storing the API's access token.
$tokenStorage = new \Adrenth\Raindrop\TokenStorage\FileTokenStorage(__DIR__ . '/token.txt');

// Ideally create your own TokenStorage adapter. 
// The shipped FileTokenStorage is purely an example of how to create your own.

/*
 * Client-side calls
 */
$client = new \Adrenth\Raindrop\Client($settings, $tokenStorage, $applicationId);

// (Un)register a user by it's Hydro ID
$client->registerUser($hydroId);
$client->unregisterUser($hydroId);

// Generate 6 digit message
$message = $client->generateMessage();

// Verify signature
$client->verifySignature($hydroId, $message);

/*
 * Server-side calls
 */
$server = new \Adrenth\Raindrop\Server($settings, $tokenStorage);

$server->whitelist('0x..'); // Provide ETH address
$server->challenge('41579b51-c365-406e-86a8-3839fcad576f');
$server->authenticate('41579b51-c365-406e-86a8-3839fcad576f');