Dấu hiệu duy nhất trên

SSO

Đăng nhập đơn đăng ký (SSO - Single Sign-On) là một phương pháp xác thực cho phép người dùng xác thực một cách an toàn với nhiều ứng dụng và trang web bằng cách chỉ sử dụng một bộ thông tin đăng nhập duy nhất.

Làm thế nào nó hoạt động?

Bạn yêu cầu người dùng tạo SSIDs của họ cũng như các mã thông tin cá nhân từ các SSIDs đó. Để đăng nhập vào dịch vụ của bạn, họ chỉ cần nhập các ID của các mã thông tin cá nhân.

Ở nền tảng, bạn kiểm tra rằng các mã thông tin cá nhân (có thể là NFTs) thực sự thuộc về người dùng và nếu có, lấy SSID từ mã thông tin cá nhân.

Để lấy một SSID từ một mã thông tin cá nhân, bạn sẽ phải truy vấn hàm metadata của hợp đồng SSI mà bạn truyền vào ID của mã thông tin cá nhân

// Mã mẫu
ISSI(ssiContract).metadata(identity_token_id)

Điều này sẽ trả về một đối tượng metadata với định dạng sau

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

Để lấy SSID thực tế, bạn sẽ nhận được biến answer sau khi xác minh rằng câu hỏi thực sự là SSID

// Mã hoàn chỉnh
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
}

Bạn sẽ sử dụng dữ liệu SSID của người dùng thu thập từ các mã thông tin cá nhân của họ làm định danh của họ và đăng nhập họ sau khi bạn thực hiện kiểm tra nhanh chóng đó

Last updated