unnikrishnanbhargavakurup / hellocoop
Hellō identity provider(IdP) client in PHP
Requires
- php: >=8.1 <=8.4.5
- ext-curl: *
- ext-json: *
- ext-openssl: *
- guzzlehttp/guzzle: ^7.9
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.65
- php-mock/php-mock-phpunit: ^2.12
- php-parallel-lint/php-parallel-lint: ^1.1
- phpstan/phpstan: ^1.8
- phpstan/phpstan-mockery: ^1.1
- phpstan/phpstan-phpunit: ^1.1
- phpunit/phpunit: ^12.0
- slevomat/coding-standard: ^8.4
- squizlabs/php_codesniffer: ^3.11
This package is auto-updated.
Last update: 2025-06-16 12:50:00 UTC
README
Release | Tests | Coverage |
---|---|---|
Hellō enables your users to register and log in using their choice of popular social logins, email, or phone—without tracking them. Hellō is a cloud identity wallet with a mission to empower users to control their digital identities.
Key Features
- Social Login: Support for popular providers like Google, Facebook, etc.
- Email and Phone Authentication: Verified email or phone login.
- User Privacy First: Focused on giving users control without tracking.
- Quick Integration: Set up authentication in minutes.
Developer-Friendly
The easiest and quickest way to onboard and authenticate your users with popular social providers, verified email, and phone. Hellō can be integrated into your application in minutes, not hours.
Getting Started
The following example demonstrates how to integrate the Hellō client into your PHP application.
Installation
Install the library using Composer:
composer require unnikrishnanbhargavakurup/hellocoop
Usage
use HelloCoop\Config\HelloConfig; use HelloCoop\HelloClient; // Step 1: Define all required configurations define('API_ROUTE', '/api/hellocoop'); // Define the API route // App ID from https://console.hello.coop/ define('APP_ID', 'app_43tf7X1qHvsCVZIuPQtzQE8J_KQq'); // Add your domain name here (e.g., ngrok domain or deployed domain) define('HOST', 'b46e-223-205-76-153.ngrok-free.app'); // Create a 32-byte hex secret key using the command: openssl rand -hex 32 define('SECRET', '1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef'); // Step 2: Create an instance of the HelloConfig class $config = new HelloConfig( API_ROUTE, // $apiRoute: The base API route API_ROUTE . '?op=auth', // $authApiRoute: The route for authentication API_ROUTE . '?op=login', // $loginApiRoute: The route for login API_ROUTE . '?op=logout', // $logoutApiRoute: The route for logout false, // CSRF protection (false to restrict cross-origin requests) APP_ID, // Application ID 'https://' . HOST . API_ROUTE, // Full API URL HOST, // Hostname SECRET // Secret key for encryption and decryption of data ); // Step 3: Create an instance of HelloClient $helloClient = new HelloClient($config); $requestUri = $_SERVER['REQUEST_URI']; $parsedUrl = parse_url($requestUri); // Extract the path from the request URI, ignoring query parameters $requestPath = $parsedUrl['path'] ?? ''; // Step 4: Route Hellō API requests if ($requestPath === API_ROUTE) { $helloClient->route(); // Handle the routing of the API request }
Code Quality: Pre-Commit Hook for Linting
To maintain code quality, this project uses a pre-commit hook for automatic linting before each commit.
Setup Instructions
-
Copy the pre-commit hook to your Git hooks directory:
cp pre-commit .git/hooks/
-
Make the hook executable (if it’s not already):
chmod +x .git/hooks/pre-commit
This ensures code quality and consistency across the project.
Contributing
We welcome contributions! Please open an issue or submit a pull request with your changes. Make sure your contributions adhere to the code style guidelines enforced by the pre-commit hook.
License
This project is licensed under the MIT License. See the LICENSE file for details.