> For the complete documentation index, see [llms.txt](https://docs.payswap.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.payswap.org/bangal/use-cases/ssi/single-sign-on.md).

# একক সাইন

একক সাইন-অন (SSO) হল একটি প্রমাণীকরণ পদ্ধতি যা ব্যবহারকারীদের শুধুমাত্র একটি শংসাপত্রের সেট ব্যবহার করে একাধিক অ্যাপ্লিকেশন এবং ওয়েবসাইটগুলির সাথে নিরাপদে প্রমাণীকরণ করতে সক্ষম করে৷

## এটা কিভাবে কাজ করে ?

আপনি আপনার ব্যবহারকারীদের তাদের SSID এবং সেই SSID থেকে পরিচয় টোকেন তৈরি করতে বলুন৷ আপনার পরিষেবাতে সাইন ইন করতে, তাদের শুধু পরিচয় টোকেনের আইডি ইনপুট করতে হবে।

ব্যাকগ্রাউন্ডে, আপনি চেক করেন যে আইডেন্টিটি টোকেনগুলি (যা NFTs) আসলেই ব্যবহারকারীদের অন্তর্গত এবং যদি তা হয়, তাহলে পরিচয় টোকেন থেকে SSID পান৷

একটি পরিচয় টোকেন থেকে একটি SSID পেতে, আপনাকে SSI চুক্তির **মেটাডেটা** ফাংশনটি জিজ্ঞাসা করতে হবে যেখানে আপনি পরিচয় টোকেন আইডি পাস করেন

```
// উদাহরণ কোড
ISSI(ssiContract)।মেটাডেটা(identity_token_id)
```

এটি নিম্নলিখিত বিন্যাস সহ একটি মেটাডেটা অবজেক্ট ফিরিয়ে দেবে

```
গঠন SSIData {
     uint senderProfileId;
     uint receiverProfileId;
     uint auditorProfileId;
     uint সময়সীমা;
     স্ট্রিং প্রশ্ন;
     স্ট্রিং উত্তর;
     প্রুফ টাইপ প্রুফ টাইপ;
}
```

প্রকৃত SSID পেতে, প্রশ্নটি সত্যিই SSID তা যাচাই করার পর আপনি উত্তর পরিবর্তনশীল পাবেন

```
// সম্পূর্ণ কোড
ফাংশন getSSID(uint _identity_token_id) বাহ্যিক রিটার্ন (স্ট্রিং মেমরি) {
     SSIData মেমরি ডেটা = ISSI(ssiContract)।মেটাডেটা(identity_token_id)
     প্রয়োজন(keccak256(abi.encodePacked(data.question)) == keccak256(abi.encodePacked("ssid")))
     data.answer ফেরত দিন
}
```

আপনি আপনার ব্যবহারকারীদের পরিচয় টোকেন থেকে সংগৃহীত SSID ডেটা তাদের শনাক্তকারী হিসাবে ব্যবহার করবেন এবং দ্রুত পরীক্ষা করার পরে তাদের সাইন ইন করবেন
