putheakhem / laravel-camdigi-key
A Laravel wrapper for the CamDigiKey Node.js client library
Installs: 299
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/putheakhem/laravel-camdigi-key
Requires
- php: ^8.2
- illuminate/support: ^10.0|^11.0|^12.0
- symfony/process: ^6.0|^7.0|^8.0
Requires (Dev)
- mockery/mockery: ^1.6
- orchestra/testbench: ^9.0|^10.0
- pestphp/pest: ^3.0
- pestphp/pest-plugin-laravel: ^3.0
This package is auto-updated.
Last update: 2026-01-28 08:50:02 UTC
README
Laravel CamDigiKey Package
⚠️ DISCLAIMER: This is an unofficial community package and is not affiliated with, endorsed by, or supported by the official CamDigiKey Platform or the Cambodian government. This package is maintained independently. For official support, please contact the official CamDigiKey Platform directly. A Laravel wrapper for the CamDigiKey Node.js Client.
This package integrates Cambodia’s national digital identity authentication (CamDigiKey) system with your Laravel application via Node.js.
🇰🇭 Stand with Cambodia • កម្ពុជា
🕊️ Cambodia Needs Peace 🕊️
With heavy hearts, we stand with our brave soldiers defending Cambodia’s land and dignity.
We seek no conflict—only peace, justice, and respect for our sovereignty.
🙏 កម្ពុជាត្រូវការសន្តិភាព • Together to protect Cambodia’s sovereignty.
📦 Installation
You can install the package via Packagist:
composer require putheakhem/laravel-camdigi-key
⚙️ Setup
After installation:
php artisan vendor:publish --tag=config
This will publish the config/camdigikey.php file.
Run php artisan camdigikey:setup. The package also automatically clones the Node.js SDK into:
vendor/putheakhem/laravel-camdigi-key/node-lib/
🌐 .env Configuration
Set your CamDigiKey credentials in .env:
CAMDIGIKEY_CLIENT_ID=your_client_id CAMDIGIKEY_HMAC_KEY=your_hmac_key CAMDIGIKEY_AES_SECRET_KEY=your_aes_secret CAMDIGIKEY_AES_IV_PARAMS=your_iv CAMDIGIKEY_CLIENT_DOMAIN=https://your-app.test CAMDIGIKEY_SERVER_BASED_URL=https://camdigikey.serveo.net CAMDIGIKEY_CLIENT_KEYSTORE_FILE=storage/app/camdigi-key/client_keystore.p12 CAMDIGIKEY_CLIENT_KEYSTORE_FILE_PASSWORD=your_password CAMDIGIKEY_CLIENT_TRUST_STORE_FILE=storage/app/camdigi-key/trust_keystore.p12 CAMDIGIKEY_CLIENT_TRUST_STORE_FILE_PASSWORD=your_password CAMDIGIKEY_REDIRECT_URI=https://your-app.test/callback
✅ Store
.p12files securely instorage/app/camdigi-key/
🧪 Usage
Example route to get a login token:
Route::get('/camdigikey/login-token', function () { return CamDigiKey::getLoginToken(); });
Or in a controller:
$token = CamDigiKey::getLoginToken(); $access = CamDigiKey::getUserAccessToken($authToken);
All supported methods:
getLoginToken()getUserAccessToken($authToken)refreshUserAccessToken($accessToken)logoutAccessToken($accessToken)validateJwt($accessToken)lookupUserProfile($accessToken, $personalCode)verifyAccountToken($accountToken)getOrganizationAccessToken()getUserFace($accessToken)
🧹 Artisan Setup Command (Optional)
Automatically run during install:
php artisan camdigikey:setup
This clones the CamDigiKey Node.js SDK into the expected path.
🔐 Security
- Never expose
.p12files in public directories .gitignoreall private keystores- If you discover any security issues, please email puthea.khem at gmail.com instead of using the issue tracker.
Support Me
If you find this package useful, consider supporting my work:
📄 License
The MIT License (MIT). Please see License File for more information.
Built with ❤️ by Puthea khem