Unduh MarkdownDokumen asli di GitHub
Integrasi aplikasi dengan Launch dan Licentivo
Panduan ini berlaku untuk penyedia Licentivo. Untuk menghubungkan sistem lisensi milik pedagang tanpa Licentivo, gunakan API lisensi kustom dan alur integrasi, pilih custom_http untuk produk/lingkungan, dan pertahankan SDK runtime sistem tersebut.
Perubahan lokal yang belum diterbitkan ini menggunakan pertukaran identitas akun. Lihat kontrak tanggung jawab dan sinkronisasi pembelian untuk migrasi dan pencabutan sesi sisi server. Nomor versi paket belum diterbitkan atau ditingkatkan oleh perubahan ini.
Launch memiliki akun pedagang, pesanan, harga, penawaran perpanjangan/peningkatan, pengembalian dana, dan tanggal pembelian absolut. Licentivo memiliki lisensi, kebijakan, jatah perangkat, sesi otorisasi, izin bertanda tangan, dan keputusan runtime. Login Launch yang berhasil atau pembelian tersinkronisasi tidak pernah menjadi izin untuk menjalankan pekerjaan yang dilindungi.
Gunakan halaman integrasi administrasi untuk mendapatkan panggilan koneksi langsung dan kunci produk publik yang dipatok. Semua wrapper sembilan bahasa berisi SDK resmi. Kunci manajemen pedagang dan pembayaran tetap berada di server. Pengaturan produk publik tidak berisi kredensial pelanggan, ID perangkat, path cache, atau assertion identitas.
Pertukaran akun
sequenceDiagram
participant App as Application
participant Launch as Launch server
participant SDK as Official Licentivo SDK
participant Lic as Licentivo server
App->>Launch: Account login
Launch-->>App: Account session
App->>Launch: POST /software/products/{id}/identity
Launch-->>App: Short-lived signed identity assertion
App->>SDK: In-memory identity + connection + environment
SDK->>Lic: POST /launch/exchange
Lic-->>SDK: Restricted device credential + signed permission + logout ticket
App->>SDK: RunFeature around every protected action
Wrapper meminta POST /api/v1/software/products/{id}/identity dengan {"environment":"sandbox"} atau live. Assertion identitas yang dikembalikan berlaku maksimal 120 detik dan terikat pada issuer terdaftar, audience, sesi login nyata, produk, lingkungan, dan referensi pembelian. Assertion tidak berisi grant fitur, jatah perangkat, atau kebijakan offline.
SDK resmi menerima nilai-nilai ini dalam memori:
{
"product_id": "LICENTIVO_PRODUCT_UUID",
"trusted_keys": {"SIGNING_KEY_ID": "PINNED_PUBLIC_KEY"},
"launch_connection_id": "LICENTIVO_LAUNCH_CONNECTION_UUID",
"environment": "sandbox",
"identity_token": "SHORT_LIVED_ASSERTION_FROM_LAUNCH",
"license_key": ""
}
Jangan tulis konfigurasi runtime ini ke file publik atau simpan assertion-nya secara persisten dalam catatan akun. Catatan yang diingat Launch v2 hanya menyimpan sesi akun dan konteks rute publik. Endpoint pelanggan /credential lama mengembalikan HTTP 410.
Siklus hidup dan penyimpanan
Login: autentikasi akun, minta assertion baru, mulai SDK resmi.Restore: konfirmasi akun yang diingat secara online, minta assertion baru, mulai SDK resmi. Gangguan Launch tidak memilih izin offline.RunFeature: delegasikan setiap eksekusi yang dilindungi ke SDK resmi. Callback yang ditolak tidak boleh dijalankan.Close/Dispose/Drop: hentikan pekerjaan latar belakang, pertahankan login yang sengaja diingat dan pengikatan node.Logout: panggil logout terpadu SDK resmi, lalu bersihkan catatan akun Launch dan akhiri sesi akunnya.ReleaseDevice: alias kompatibilitas untuk logout eksplisit. Laporkan pencabutan jarak jauh yang tertunda dengan jujur.
Hanya SDK resmi yang menghapus kredensial perangkat dan file lease miliknya. Jangan pernah menghapus direktori cache atau .logout.json: jurnal tersebut menyimpan tiket pelepasan terbatas yang diperlukan setelah permintaan jaringan gagal. SDK melanjutkan tiket tertunda saat cache yang cocok diinisialisasi kembali. Penyimpanan akun Launch sendiri dan penyimpanan SDK memiliki pemilik terpisah.
Aplikasi yang memerlukan startup offline menggunakan alur pemulihan SDK resmi yang didokumentasikan. Hanya SDK yang memverifikasi izin bertanda tangan, konteks produk/lingkungan, kedaluwarsa, perilaku jam, dan status perangkat. Wrapper Launch tidak menyimpulkan izin dari tanggal pembelian, pesanan lokal, atau keberadaan file.
Sesi akun hanya memori adalah default. Penyimpanan akun persisten harus mengenkripsi/mengautentikasi catatannya dan melindungi kuncinya dengan fasilitas kredensial sistem operasi. Gunakan cache yang dapat ditulis dan terpisah untuk setiap pedagang, akun, produk, dan lingkungan. Renderer browser harus menerima hasil bisnis, bukan token akun desktop, assertion, atau kredensial perangkat.
Pembelian dan perangkat
Launch menghitung tanggal pembelian absolut dari pembayaran terverifikasi dan cakupan pesanan yang tidak dapat diubah, lalu mengirim snapshot berversi ke /api/v1/launch/connections/{id}/events. Launch memeriksa peristiwa hingga applied; penerimaan saja bukan pemenuhan. Percobaan ulang perpanjangan dan pengembalian dana tidak dapat menambahkan durasi untuk kedua kalinya. Pengembalian dana hanya menghapus cakupan pesanan terkait; pembelian yang dikembalikan sepenuhnya diganti dengan referensi baru saat dibeli ulang.
Pengguna tanpa akses ke perangkat dapat membuka halaman manajemen perangkat Launch. Daftar, sisa pelepasan, tindakan yang diizinkan, dan hasil operasi berasal dari Licentivo. Pelepasan membawa generasi pengikatan yang ditampilkan dan ID operasi yang tidak berubah. Launch tidak menyimpan penghitung pelepasan atau pelaksana job tandingan.
Verifikasi dan batasan
Uji pertukaran akun, penyimpanan assertion sementara, eksekusi fitur yang dikendalikan SDK, penutupan biasa, logout eksplisit dalam proses baru, jurnal pelepasan tertunda, dan isolasi produk/lingkungan. Uji lease bertanda tangan nyata SDK resmi, pemeriksaan offline, dan penolakan manipulasi secara terpisah dari transport akun Launch. Kompilasi dan fixture tidak membuktikan penerimaan produksi.
Launch juga menggunakan endpoint POST session-revocations dan GET tanda terima Licentivo V39 untuk logout desktop, logout paksa sesi, perubahan kata sandi, dan penonaktifan akun. Launch membekukan penerima dan permintaan asli secara persisten, memulihkan respons yang hilang, dan mengonfirmasi setiap lingkungan secara independen. Pemberitahuan seluruh akun yang tertunda menjeda autentikasi desktop baru; setelah konfirmasi, login yang benar-benar baru harus memiliki auth_time yang benar-benar setelah detik revoked_before terbaru. Pemulihan situs tetap tersedia. Pemberitahuan ini tidak pernah mengubah tanggal pembelian. Lihat kontrak batas dan pemulihan.
Lihat integrasi manual, integrasi AI, paket integrasi, dan penerimaan.