PHPackages                             blpid/connectidn-php - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. blpid/connectidn-php

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

blpid/connectidn-php
====================

ConnectIDN SDK for PHP

v1.2.1(2w ago)07↓100%MITPHPPHP &gt;=8.1

Since May 21Pushed 2w agoCompare

[ Source](https://github.com/rizal5516/connectidn-php-sdk)[ Packagist](https://packagist.org/packages/blpid/connectidn-php)[ Docs](https://github.com/blpid/connectidn-php)[ RSS](/packages/blpid-connectidn-php/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (1)Versions (2)Used By (0)

connectidn-php
==============

[](#connectidn-php)

ConnectIDN SDK for PHP — integrasi SSO via OpenID Connect (OIDC) dengan PKCE.

Instalasi
---------

[](#instalasi)

```
composer require blpid/connectidn-php
```

Quick Start
-----------

[](#quick-start)

```
use BSSN\ConnectIDN\ConnectIDN;
use BSSN\ConnectIDN\ConnectIDNConfig;

$config = new ConnectIDNConfig(
    clientId:     'YOUR_CLIENT_ID',
    clientSecret: 'YOUR_CLIENT_SECRET',
    redirectUri:  'https://yourapp.com/auth/callback',
);

$connectidn = new ConnectIDN($config);
```

Contoh Penggunaan
-----------------

[](#contoh-penggunaan)

### Login

[](#login)

Arahkan pengguna ke URL ini untuk memulai alur autentikasi:

```
// auth/login.php
$connectidn->authenticate(); // redirect otomatis ke ConnectIDN
```

### Callback

[](#callback)

`authenticate()` mendeteksi secara otomatis apakah request adalah redirect balik dari ConnectIDN. Panggil method yang sama di URL callback untuk menyelesaikan token exchange:

```
// auth/callback.php
session_start();

$user = $connectidn->authenticate();

RequireAuth::store($user); // simpan ke session dengan aman
header('Location: /dashboard');
exit;
```

### Auth Guard

[](#auth-guard)

Proteksi halaman yang membutuhkan login:

```
use BSSN\ConnectIDN\RequireAuth;

// Di awal halaman yang perlu login
RequireAuth::guard('/auth/login'); // redirect ke login jika belum autentikasi

$user = RequireAuth::user(); // ambil data user dari session
echo 'Halo, ' . htmlspecialchars($user['name']);
```

### Logout

[](#logout)

```
// auth/logout.php
session_start();

$idToken = $_SESSION['connectidn_id_token'] ?? null;
RequireAuth::clear(); // hapus session user

$connectidn->logout($idToken ?? '', 'https://yourapp.com');
```

### Login Button (HTML Helper)

[](#login-button-html-helper)

```
echo $connectidn->loginButton('/auth/login', logoSrc: '/images/logo.png');
```

Opsi Konfigurasi
----------------

[](#opsi-konfigurasi)

OpsiTipeWajibDefaultKeterangan`clientId``string`✅—Client ID dari portal ConnectIDN`clientSecret``string`✅—Client Secret dari portal ConnectIDN`redirectUri``string`✅—URL callback setelah login`environment``'development'|'staging'`—`'staging'`Environment ConnectIDN`scopes``array`—`['openid','profile','email']`Scope OIDC`postLogoutUri``string`—`'/'`URL redirect setelah logout`verifyTls``bool`—`true`Verifikasi sertifikat TLS. Set `false` hanya untuk development dengan self-signed certificateData User
---------

[](#data-user)

`authenticate()` mengembalikan objek `ConnectIDNUser` dengan properti berikut:

PropertiTipeKeterangan`sub``string`Subject identifier (user ID unik)`name``?string`Nama lengkap`email``?string`Alamat email`emailVerified``?bool`Status verifikasi email`phoneNumber``?string`Nomor telepon`picture``?string`URL foto profil`rid``?string`RID (identitas nasional)`nip``?string`NIP (ASN)`roles``array`Daftar role pengguna`accessToken``string`Access token OIDC`idToken``?string`ID token — simpan untuk keperluan logoutKeamanan
--------

[](#keamanan)

- PKCE (S256) diaktifkan secara default dan tidak dapat dinonaktifkan.
- `RequireAuth::store()` memanggil `session_regenerate_id()` untuk mencegah session fixation.
- Cookie session dikonfigurasi dengan `HttpOnly`, `Secure`, dan `SameSite=Lax`.
- `loginButton()` secara otomatis meng-escape HTML dan memblokir `javascript:`, `vbscript:`, `data:` URI.
- `RequireAuth::guard()` hanya mengizinkan path relatif untuk mencegah open redirect.

Requirements
------------

[](#requirements)

- PHP &gt;= 8.1
- [`jumbojett/openid-connect-php`](https://github.com/jumbojett/OpenID-Connect-PHP) ^1.0

Lisensi
-------

[](#lisensi)

MIT © BLPID — Badan Siber dan Sandi Negara

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance96

Actively maintained with recent releases

Popularity6

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

19d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/0b0d44e2e688e4e1dbd6ce21ab2f8f3861c5944ac26c50ead2a97ed2518581ea?d=identicon)[brokderid](/maintainers/brokderid)

---

Top Contributors

[![rizal5516](https://avatars.githubusercontent.com/u/82750972?v=4)](https://github.com/rizal5516 "rizal5516 (8 commits)")

---

Tags

SSOOpenID Connectkeycloakoidcconnectidn

### Embed Badge

![Health badge](/badges/blpid-connectidn-php/health.svg)

```
[![Health](https://phpackages.com/badges/blpid-connectidn-php/health.svg)](https://phpackages.com/packages/blpid-connectidn-php)
```

###  Alternatives

[drenso/symfony-oidc-bundle

OpenID connect bundle for Symfony

93714.0k3](/packages/drenso-symfony-oidc-bundle)[ronvanderheijden/openid-connect

OpenID Connect support to the PHP League's OAuth2 Server. Compatible with Laravel Passport.

62841.9k](/packages/ronvanderheijden-openid-connect)[authlete/authlete-laravel

Authlete Library for Laravel

4226.2k](/packages/authlete-authlete-laravel)[jeremy379/laravel-openid-connect

OpenID Connect support to the PHP League's OAuth2 Server. Compatible with Laravel Passport.

58403.6k8](/packages/jeremy379-laravel-openid-connect)[facile-it/php-openid-client

OpenID (OIDC) Client

42641.9k12](/packages/facile-it-php-openid-client)[authlete/authlete

Authlete Library for PHP

1481.6k1](/packages/authlete-authlete)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
