Pojedyncze logowanie

SSO

Pojedyncze logowanie (SSO) to metoda uwierzytelniania, która umożliwia użytkownikom bezpieczne uwierzytelnianie w wielu aplikacjach i witrynach internetowych przy użyciu tylko jednego zestawu poświadczeń.

Jak to działa ?

Twoi użytkownicy tworzą swoje identyfikatory SSID, a także tokeny tożsamości na podstawie tych identyfikatorów SSID. Aby zalogować się do Twojej usługi, wystarczy wprowadzić identyfikatory tokenów tożsamości.

W tle sprawdzasz, czy tokeny tożsamości (które są NFT) naprawdę należą do użytkowników, a jeśli tak, pobierasz identyfikator SSID z tokena tożsamości.

Aby uzyskać identyfikator SSID z tokena tożsamości, należy wysłać zapytanie do funkcji metadanych kontraktu SSI, do której przekazuje się identyfikator tokena tożsamości

// Przykładowy kod
ISSI(ssiContract).metadata(identity_token_id)

Spowoduje to zwrócenie obiektu metadanych w następującym formacie

struktura SSIData {
     uint nadawcaProfileId;
     uint odbiornikProfileId;
     uint audytorProfileId;
     ostateczny termin;
     pytanie ciągowe;
     odpowiedź w postaci ciągu znaków;
     Typ dowoduTyp dowodu;
}

Aby uzyskać rzeczywisty identyfikator SSID, zmienną odpowiedzi otrzymasz po sprawdzeniu, czy pytanie rzeczywiście dotyczy identyfikatora SSID

// Kompletny kod
funkcja getSSID(uint _identity_token_id) zwraca zewnętrzne (pamięć string) {
     Dane pamięci SSIData = ISSI(ssiContract).metadata(identity_token_id)
     require(keccak256(abi.encodePacked(data.question)) == keccak256(abi.encodePacked("ssid")))
     zwróć dane.odpowiedź
}

Jako identyfikatorów użyjesz danych SSID użytkowników zebranych z ich tokenów tożsamości i zalogujesz się po przeprowadzeniu tego szybkiego sprawdzenia

Last updated