putheakhem/laravel-camdigi-key

A Laravel wrapper for the CamDigiKey Node.js client library

Maintainers

Package info

github.com/putheakhem/laravel-camdigi-key

pkg:composer/putheakhem/laravel-camdigi-key

Statistics

Installs: 548

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

2.0.0 2026-04-23 09:54 UTC

This package is auto-updated.

Last update: 2026-04-24 04:26:24 UTC


README

Logo for Laravel CamDigi Key

Laravel CamDigiKey Package

Latest Stable Version Total Downloads

⚠️ 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.

πŸ‡°πŸ‡­ 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/

For package maintainers using a local symlinked package during development, the SDK resolves from the local package directory.

🌐 .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)
  • refreshAccessToken($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