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

v1.0.1 2026-01-28 08:00 UTC

This package is auto-updated.

Last update: 2026-01-28 08:50:02 UTC


README

Latest Stable Version Total Downloads

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 .p12 files securely in storage/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 .p12 files in public directories
  • .gitignore all 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