SSO

Login Menggunakan B-Sims dari aplikasi pihak ketiga / Client App.

Sebelum lanjut menggunakan SSO B-Sims, Aplikasi Client diharapkan menginformasikan data-data dibawah untuk kebutuhan integrasi :

Nama
Tipe
Keterangan

client_name

required

Nama Aplikasi Client.

redirect_url

required

URL Redirect yang akan digunakan ketika user berhasil login. URL ini akan berisi token parameter yang akan di consume untuk mendapatakan data user login.

description

optional

Deskripsi dari Aplikasi Client

policy_url

optional

URL untuk info yang terkait kebijakan privasi yang di sediakan oleh aplikasi client.

service_url

optional

URL untuk info yang terkait persyaratan layanan yang di sediakan oleh aplikasi client.

logo_url

optional

URL menampilkan logo dari aplikasi client. Logo aplikasi client akan muncul di halaman SSO Login.

Langkah-langkah Mengakses SSO B-Sims

1. Mendapatkan CLIENT_ID

Sebelum memulai, aplikasi client harus mendapatkan CLIENT_ID yang valid. CLIENT_ID ini akan diberikan oleh penyedia layanan SSO dalam hal ini PDSI BP Batam dengan bersurat ke BUP BP Batam saat aplikasi client didaftarkan.

2. Login

Setelah mendapatkan CLIENT_ID , aplikasi client dapat mengakses URL login SSO dengan menambahkan CLIENT_ID ke akhir URL. Contoh:

let APP_ID = 'your_client_id'; // ganti dengan CLIENT_ID Anda
let loginUrl = `https://b-sims.bpbatam.go.id/sso/access/login/${CLIENT_ID }`;
window.location.href = loginUrl; // mengarahkan user ke halaman login SSO

Harap ganti 'your_client_id' dengan CLIENT_ID Anda. Kode ini akan mengarahkan user ke halaman login SSO. Pastikan untuk menempatkan kode ini di tempat yang tepat dalam aplikasi Anda (Tidak Menggunakan API).

3. Mendapatkan Data User Login

Setelah user berhasil login, mereka akan diarahkan kembali ke aplikasi client dengan jwt_token di URL.

Contoh Redirect URL: https://yourapp.com?token=JWT_TOKEN.

Aplikasi client dapat menggunakan jwt_token ini untuk mengakses data user login melalui URL https://b-sims.bpbatam.go.id/sso/access/success , dengan menambahkan Authorization Bearer pada header Request. Contoh :

let jwt_token = 'your_jwt_token'; // ganti dengan jwt_token Anda
let userDataUrl = 'https://b-sims.bpbatam.go.id/sso/access/success';

fetch(userDataUrl, {
  headers: {
    'Authorization': `Bearer ${jwt_token}`
  }
})
.then(response => response.json())
.then(data => console.log(data)); // data user login

Harap ganti 'your_jwt_token' dengan jwt_token Anda. Kode ini akan mengambil data user login dari SSO menggunakan REST API SSO B-sims.

Contoh Response :

Headers

Name
Value

Content-Type

application/json

Authorization

Bearer <token>

Response

{
    "status_code": 200,
    "status": "success",
    "message": "success",
    "data": {
        "name": "xxxx",
        "username": "xxxxx",
        "email": "xxxxxx@gmail.com",
        "nik": "323123412313123",
        "company": {
            "comp_cd": "xxxx",
            "comp_nm": "XXXXX, PT",
            "comp_npwp": "xx.xxx.xxx.x-xxx.xxx",
            "comp_type": "Perusahaan Pelayaran Nasional (PELNAS)"
        }
    }
}

4. Logout

Untuk logout, aplikasi client dapat mengakses URL https://b-sims.bpbatam.go.id/sso/access/logout dengan jwt_token sebagai authorization bearer. Contoh:

let logoutUrl = 'https://b-sims.bpbatam.go.id/sso/access/logout';

fetch(logoutUrl, {
  headers: {
    'Authorization': `Bearer ${jwt_token}`
  }
})
.then(response => console.log('Logged out')); // user telah logout

Jika menggunakan REST API pada saat logout, pastikan user di redirect ke halaman logout/base dari B-Sims atau Aplikasi Client.


Contoh Akses Menggunakan REST API.

Headers

Name
Value

Content-Type

application/json

Authorization

Bearer <token>

Response

{
    "status_code": 200,
    "status": "success",
    "message": "Logout Success.",
    "data": null
}

Closure

Harap dicatat bahwa ini adalah contoh dasar dan mungkin perlu disesuaikan sesuai dengan kebutuhan dan lingkungan aplikasi client. Selalu pastikan untuk menangani kesalahan dan pengecualian (contoh: menambahkan Try Catch Block) yang mungkin terjadi selama proses ini.

Last updated