Sistem Masuk Tunggal

SSO

Single sign-on (SSO) adalah metode autentikasi yang memungkinkan pengguna untuk mengautentikasi dengan aman pada beberapa aplikasi dan situs web dengan menggunakan hanya satu set kredensial.

Bagaimana cara kerjanya?

Anda meminta pengguna membuat SSID (Single Sign-On ID) serta token identitas dari SSID tersebut. Untuk masuk ke layanan Anda, mereka hanya perlu memasukkan ID dari token identitas.

Di latar belakang, Anda memeriksa bahwa token identitas (yang merupakan NFT) benar-benar milik pengguna dan jika iya, mendapatkan SSID dari token identitas.

Untuk mendapatkan SSID dari token identitas, Anda harus melakukan kueri pada fungsi metadata dari kontrak SSI (Single Sign-On Identity) yang membutuhkan ID token identitas.

// Contoh kode
ISSI(ssiContract).metadata(identity_token_id)

Ini akan mengembalikan objek metadata dengan format berikut.

struct SSIData {
    uint senderProfileId;
    uint receiverProfileId;
    uint auditorProfileId;
    uint deadline;
    string question;
    string answer;
    ProofType proofType;
}

Untuk mendapatkan SSID sebenarnya, Anda akan mendapatkan variabel jawaban setelah memverifikasi bahwa pertanyaannya benar-benar SSID.

// Kode lengkap
function getSSID(uint _identity_token_id) external returns(string memory) {
    SSIData memory data = ISSI(ssiContract).metadata(identity_token_id)
    require(keccak256(abi.encodePacked(data.question)) == keccak256(abi.encodePacked("ssid")))
    return data.answer
}

Anda akan menggunakan data SSID pengguna yang dikumpulkan dari token identitas mereka sebagai pengenal mereka dan masuk setelah Anda melakukan pemeriksaan cepat tersebut.

Last updated