FedCM के अपडेट: Continuation API बंडल और Storage Access API के लिए ऑरिजिन ट्रायल की सुविधा अपने-आप अनुमति देना

Chrome 126 से, डेवलपर डेस्कटॉप फ़ेडरेटेड क्रेडेंशियल मैनेजमेंट एपीआई (FedCM) की कुछ सुविधाएं इस्तेमाल के उदाहरण अनुमति देना. बंडल में Continuation API और पैरामीटर एपीआई, जो OAuth की मदद से पुष्टि करने के फ़्लो जैसा अनुभव चालू करता है इसमें आइडेंटिटी प्रोवाइडर (आईडीपी) से मिला अनुमति वाला डायलॉग शामिल है. बंडल में भी इसमें फ़ील्ड एपीआई, एक से ज़्यादा कॉन्फ़िगरेशन यूआरएल, और कस्टम जैसे अन्य बदलाव शामिल हैं खाता लेबल. Chrome 126 से, हम इसके लिए ऑरिजिन ट्रायल भी शुरू कर रहे हैं: Storage Access API (एसएए) एक ऐसा टूल है जो SAA को तब अपने-आप देता है, जब उपयोगकर्ता ने पिछले FedCM का उपयोग करके सफलतापूर्वक लॉग इन किया था.

ऑरिजिन ट्रायल: FedCM Continuation API बंडल

FedCM Continuation API के बंडल में कई FedCM एक्सटेंशन होते हैं:

कंटिन्यूएशन एपीआई

कोई उपयोगकर्ता आरपी में साइन इन करके, बटन मोड का इस्तेमाल करके अनुमति दे रहा है.

glitch पर एपीआई का डेमो देखा जा सकता है.

Continuation API, आपको आईडीपी (IdP) का आईडी से जुड़ा दावा एंडपॉइंट को विकल्प के तौर पर वह यूआरएल दिखाएं जिसे FedCM रेंडर करके उपयोगकर्ता को, जारी रखने की अनुमति देगा एक से ज़्यादा चरणों में साइन-इन फ़्लो. इससे आईडीपी (IdP) को उपयोगकर्ता से, अनुमति देने का अनुरोध करने की अनुमति मिलती है मौजूदा FedCM यूज़र इंटरफ़ेस (यूआई) में जितना हो सकता है, उससे ज़्यादा पर भरोसा करना, जैसे कि उपयोगकर्ता के सर्वर-साइड संसाधनों का ऐक्सेस.

आम तौर पर, आईडी दावे का एंडपॉइंट, गड़बड़ी के मैसेज के लिए ज़रूरी टोकन दिखाता है पुष्टि करने के लिए.

{
  "token": "***********"
}

हालांकि, Continuation API का इस्तेमाल करने पर, आईडी का दावा एंडपॉइंट यह कर सकता है: ऐसी continue_on प्रॉपर्टी दिखाएं जिसमें ऐब्सलूट पाथ या रिलेटिव पाथ शामिल हो आईडी दावा एंडपॉइंट का पाथ.

{
  // In the id_assertion_endpoint, instead of returning a typical
  // "token" response, the IdP decides that it needs the user to
  // continue on a pop-up window:
  "continue_on": "/oauth/authorize?scope=..."
}

ब्राउज़र को continue_on जवाब मिलते ही, एक नई पॉप-अप विंडो खोला जाता है और उपयोगकर्ता को बताए गए पाथ पर ले जाता है.

जब उपयोगकर्ता पेज के साथ इंटरैक्ट करता है, तब जैसे कि आगे की अनुमति देना प्रतिबंधित पार्टी के साथ ज़्यादा जानकारी शेयर करने के लिए, आईडीपी (IdP) पेज पर कॉल किया जा सकता है मूल समस्या को हल करने के लिए IdentityProvider.resolve() navigator.credentials.get() कॉल करें और तर्क के तौर पर टोकन दिखाएं.

document.getElementById('allow_btn').addEventListener('click', async () => {
  let accessToken = await fetch('/generate_access_token.cgi');
  // Closes the window and resolves the promise (that is still hanging
  // in the relying party's renderer) with the value that is passed.
  IdentityProvider.resolve(accessToken);
});

इसके बाद ब्राउज़र, पॉप-अप को बंद कर देगा और एपीआई को टोकन लौटा देगा कॉलर है.

अगर उपयोगकर्ता अनुरोध अस्वीकार कर देता है, तो इस पर कॉल करके विंडो को बंद किया जा सकता है IdentityProvider.close().

IdentityProvider.close();

अगर किसी वजह से उपयोगकर्ता ने पॉप-अप में अपना खाता बदल दिया है (उदाहरण के लिए, आईडीपी (IdP) आपको "उपयोगकर्ता स्विच करने" का विकल्प देता है फ़ंक्शन या डेलिगेशन के मामलों में, समाधान कॉल के लिए एक वैकल्पिक दूसरा तर्क लिया जाता है, जो इस तरह की अनुमति देता है:

IdentityProvider.resolve(token, {accountId: '1234');

पैरामीटर एपीआई

पैरामीटर एपीआई, आरपी को अनुमति देता है आईडी दावे में अतिरिक्त पैरामीटर देने के लिए एंडपॉइंट के बगल में बने बॉक्स को खोलें. पैरामीटर एपीआई की मदद से, आरपी, आईडीपी को अन्य पैरामीटर पास कर सकता है, ताकि साइन-इन करने के अलावा, अन्य संसाधनों के लिए भी अनुमतियां मांग सकते हैं. उपयोगकर्ता को अनुमति देनी होगी ये अनुमतियां, आईडीपी (IdP) से कंट्रोल किए जाने वाले UX फ़्लो की मदद से दी जाती हैं. इसे Continuation API.

एपीआई का इस्तेमाल करने के लिए, params प्रॉपर्टी में पैरामीटर को ऑब्जेक्ट के तौर पर जोड़ें navigator.credentials.get() कॉल.

let {token} = await navigator.credentials.get({
  identity: {
    providers: [{
      clientId: '1234',
      configURL: 'https://idp.example/fedcm.json',
      // Key/value pairs that need to be passed from the
      // RP to the IdP but that don't really play any role with
      // the browser.
      params: {
        IDP_SPECIFIC_PARAM: '1',
        foo: 'BAR',
        ETC: 'MOAR',
        scope: 'calendar.readonly photos.write',
      }
    },
  }
});

params ऑब्जेक्ट में प्रॉपर्टी के नाम, param_ से पहले जोड़ दिए जाते हैं. इस ऊपर दिए गए उदाहरण में, पैरामीटर प्रॉपर्टी में IDP_SPECIFIC_PARAM को '1' के तौर पर और foo शामिल है 'BAR' के तौर पर, ETC के तौर पर 'MOAR' और scope को 'calendar.readonly photos.write' के तौर पर. इसका अनुवाद इस तरह किया जाएगा: param_IDP_SPECIFIC_PARAM=1&param_foo=BAR&param_ETC=MOAR&param_scope=calendar.readonly%20photos.write अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इसे अनुरोध के एचटीटीपी के मुख्य भाग में डालें:

POST /fedcm_assertion_endpoint HTTP/1.1
Host: idp.example
Origin: https://rp.example/
Content-Type: application/x-www-form-urlencoded
Cookie: 0x23223
Sec-Fetch-Dest: webidentity

account_id=123&client_id=client1234&nonce=234234&disclosure_text_shown=false&param_IDP_SPECIFIC_PARAM=1&param_foo=BAR&param_ETC=MOAR&param_scope=calendar.readonly%20photos.write

डायनैमिक तौर पर अनुमतियां पाएं

आम तौर पर, अनुमतियों का अनुरोध करना तब बेहतर होता है, जब वे ज़रूरत न हो, न कि जब डेवलपर को लगे कि उन्हें लागू करना सबसे आसान है. इसके लिए उदाहरण के लिए, जब उपयोगकर्ता कैमरे को ऐक्सेस करने वाला हो, तब कैमरा ऐक्सेस करने की अनुमति मांगना किसी फ़ोटो को प्राथमिकता देने के लिए, उपयोगकर्ता के साइट पर जाते ही अनुमति मांगने के लिए कहा जाता है वेबसाइट. यही तरीका सर्वर के संसाधनों पर भी लागू होता है. सिर्फ़ अनुमतियों का अनुरोध करें की ज़रूरत पड़ती है. इसे "डाइनैमिक अनुमति" कहते हैं.

FedCM की मदद से डाइनैमिक तौर पर अनुमति देने का अनुरोध करने के लिए, आईडीपी (IdP) ये काम कर सकता है:

  1. आईडीपी (IdP) ज़रूरी पैरामीटर के साथ navigator.credentials.get() को कॉल करें जैसे कि scope.
  2. आईडी का दावा एंडपॉइंट यह पुष्टि करता है कि उपयोगकर्ता ने पहले से साइन इन किया हुआ है और continue_on यूआरएल के साथ जवाब देता है.
  3. ब्राउज़र पर एक पॉप-अप विंडो खुलती है, जिसमें आईडीपी (IdP) के अनुमति पेज का ऐक्सेस मांगा जाता है अतिरिक्त अनुमति, जो अनुरोध किए गए दायरों से मेल खाती हो.
  4. आईडीपी (IdP) से IdentityProvider.resolve() के ज़रिए अनुमति मिलने के बाद, विंडो को बंद कर दिया जाता है और आरपी के मूल navigator.credentials.get() कॉल को से जुड़ा एक टोकन या ऑथराइज़ेशन कोड सबमिट करें, ताकि आरपी उसे सही ऐक्सेस टोकन का इस्तेमाल करें.

फ़ील्ड एपीआई

Fields API का इस्तेमाल करके, आरपी को आईडीपी (IdP) से अनुरोध करने के लिए, खाते के एट्रिब्यूट के बारे में बताएं, ताकि ब्राउज़र इन कामों को कर सके FedCM डायलॉग में सही जानकारी ज़ाहिर करने वाला यूज़र इंटरफ़ेस (यूआई) देना; यह आईडीपी (IdP) की ज़िम्मेदारी है ताकि अनुरोध किए गए फ़ील्ड को, लौटाए गए टोकन में शामिल किया जा सके. यह अनुरोध करें "बुनियादी प्रोफ़ाइल" में OAuth में.

विजेट मोड में जानकारी ज़ाहिर करने वाला मैसेज.
विजेट मोड में जानकारी ज़ाहिर करने वाला मैसेज.
बटन मोड में जानकारी ज़ाहिर करने वाला मैसेज.
बटन मोड में जानकारी ज़ाहिर करने वाला मैसेज.

फ़ील्ड एपीआई का इस्तेमाल करने के लिए, fields प्रॉपर्टी में पैरामीटर को कलेक्शन के तौर पर जोड़ें navigator.credentials.get() कॉल. इन फ़ील्ड में 'name' और 'email' शामिल हो सकते हैं और 'picture' अभी के लिए हैं. हालांकि, इसमें और वैल्यू शामिल करने के लिए, इसे बड़ा किया जा सकता है आने वाले समय में इस्तेमाल करें.

fields से किया गया अनुरोध कुछ ऐसा दिखेगा:

let { token } = await navigator.credentials.get({
  identity: {
    providers: [{
      fields: ['name', 'email', 'picture'],
      clientId: '1234',
      configURL: 'https://idp.example/fedcm.json',
      params: {
        scope: 'drive.readonly calendar.readonly',
      }
    },
  }
  mediation: 'optional',
});

आईडी दावे के लिए एचटीटीपी अनुरोध एंडपॉइंट आरपी के हिसाब से तय किया गया fields पैरामीटर शामिल होता है, जिसमें disclosure_text_shown होता है अगर यह लौटने वाला उपयोगकर्ता नहीं है, तो पैरामीटर true के रूप में सेट होता है, और वे फ़ील्ड ब्राउज़र, उपयोगकर्ता को disclosure_shown_for पैरामीटर में बताया गया:

POST /id_assertion_endpoint HTTP/1.1
Host: idp.example
Origin: https://rp.example/
Content-Type: application/x-www-form-urlencoded
Cookie: 0x23223
Sec-Fetch-Dest: webidentity

account_id=123&client_id=client1234&nonce=234234&disclosure_text_shown=true&fields=email,name,picture&disclosure_shown_for=email,name,picture

अगर आरपी को आईडीपी (IdP) के किसी अतिरिक्त डेटा का ऐक्सेस चाहिए, जैसे कि कैलेंडर में, इसे ऊपर बताए गए कस्टम पैरामीटर से हैंडल किया जाना चाहिए. कॉन्टेंट बनाने अनुमति का अनुरोध करने के लिए, आईडीपी, continue_on का यूआरएल दिखाता है.

अगर fields कोई खाली कलेक्शन है, तो अनुरोध ऐसा दिखेगा:

let { token } = await navigator.credentials.get({
  identity: {
    providers: [{
      fields: [],
      clientId: '1234',
      configURL: 'https://idp.example/fedcm.json',
      params: {
        scope: 'drive.readonly calendar.readonly',
      }
    },
  }
  mediation: 'optional',
});

अगर fields खाली कलेक्शन है, तो उपयोगकर्ता एजेंट जानकारी देने वाले यूज़र इंटरफ़ेस (यूआई) को छोड़कर आगे बढ़ जाएगा.

जानकारी देने वाला मैसेज, विजेट मोड में नहीं दिखता. बटन के फ़्लो में, जानकारी देने वाले यूज़र इंटरफ़ेस (यूआई) को पूरी तरह से स्किप कर दिया गया है.
जानकारी देने वाला मैसेज, विजेट मोड में नहीं दिखता. बटन के फ़्लो में, जानकारी देने वाले यूज़र इंटरफ़ेस (यूआई) को पूरी तरह से स्किप कर दिया गया है.

ऐसा तब भी होता है, जब खातों से मिले जवाब एंडपॉइंट ऐसा क्लाइंट आईडी मौजूद नहीं है जो approved_clients में आरपी से मेल खाता हो.

इस मामले में, आईडी के दावे के लिए disclosure_text_shown ने भेजा है एंडपॉइंट यह है एचटीटीपी के मुख्य हिस्से में गलत है:

POST /id_assertion_endpoint HTTP/1.1
Host: idp.example
Origin: https://rp.example/
Content-Type: application/x-www-form-urlencoded
Cookie: 0x23223
Sec-Fetch-Dest: webidentity

account_id=123&client_id=client1234&nonce=234234&disclosure_text_shown=false

एक से ज़्यादा configURL

एक से ज़्यादा कॉन्फ़िगरेशन यूआरएल, आईडीपी (IdP) को अनुमति देते हैं आईडीपी (IdP) की कई कॉन्फ़िगरेशन फ़ाइलें शामिल की जा सकती हैं. ऐसा करने के लिए, accounts_endpoint और login_url in सुप्रसिद्ध फ़ाइल वही कॉन्फ़िगरेशन फ़ाइलों के तौर पर.

अगर जानी-पहचानी फ़ाइल में accounts_endpoint और login_url जोड़े जाते हैं, तो provider_urls को अनदेखा कर दिया जाता है, ताकि आईडीपी (IdP) कई कॉन्फ़िगरेशन फ़ाइलों के साथ काम कर सके. अगर ऐसा नहीं है, तो provider_urls लागू होता रहेगा, ताकि वह पीछे हो जाए साथ काम करता है.

एक से ज़्यादा configURL का समर्थन करने वाली लोकप्रिय फ़ाइल कुछ ऐसी दिख सकती है:

{
  "provider_urls": [ "https://idp.example/fedcm.json" ],
  "accounts_endpoint": "https://idp.example/accounts",
  "login_url": "https://idp.example/login"
}

इसकी मदद से, हम ये काम कर पाते हैं:

  1. मौजूदा लोकप्रिय फ़ाइलों के साथ आगे और पीछे साथ काम करने की सुविधा बनाए रखना और इनके पुराने वर्शन भी हैं जो पहले से ही जंगल में डिप्लॉय हैं.
  2. कॉन्फ़िगरेशन फ़ाइलों की आर्बिट्रेरी संख्या तब तक रखें, जब तक कि वे सभी accounts_endpoint और login_url मौजूद हैं.
  3. क्रेडेंशियल के साथ फ़ेच करने के अनुरोध में एन्ट्रॉपी को जोड़ने का मौका नहीं मिला accounts_endpoint को बनाया गया है, क्योंकि इसे ".well-known" लेवल.

एक से ज़्यादा configURL के साथ काम करना ज़रूरी नहीं है और मौजूदा FedCM भी ज़रूरी नहीं है लागू किए जाने की प्रक्रिया एक जैसी रह सकती है.

कस्टम खाता लेबल

कस्टम खाता लेबल FedCM की अनुमति देते हैं आईडीपी, ताकि खातों की व्याख्या की जा सके, ताकि आरपी, लेबल के बारे में बताकर उन्हें फ़िल्टर कर सके कॉन्फ़िगरेशन फ़ाइल. डोमेन संकेत का इस्तेमाल करके भी इसी तरह के फ़िल्टर दिखाए जा सकते हैं API और लॉगिन हिंट एपीआई के बारे में जानकारी देकर उन्हें navigator.credentials.get() कॉल में, लेकिन कस्टम खाता लेबल में कॉन्फ़िगरेशन फ़ाइल को तय करके उपयोगकर्ताओं को फ़िल्टर कर सकता है, जो खास तौर पर तब काम आता है, जब एक से ज़्यादा configURL का इस्तेमाल किया जाता है. कस्टम खाता लेबल हैं यह भी अलग है, क्योंकि ये आईडीपी (IdP) सर्वर से मिलती हैं, आरपी, जैसे कि लॉगिन या डोमेन से मिलने वाले संकेत.

उदाहरण

आईडीपी (IdP) में उपभोक्ता और एंटरप्राइज़ के लिए, दो कॉन्फ़िगरेशन यूआरएल इस्तेमाल किए जा सकते हैं. कॉन्टेंट बनाने उपभोक्ता कॉन्फ़िगरेशन फ़ाइल में 'consumer' लेबल और एंटरप्राइज़ कॉन्फ़िगरेशन फ़ाइल है में 'enterprise' लेबल है.

इस तरह के सेटअप से, जानी-पहचानी फ़ाइल में accounts_endpoint और एक से ज़्यादा configURL की अनुमति देने के लिए login_url.

{
  "provider_urls": [ "https://idp.example/fedcm.json" ],
  "accounts_endpoint": "https://idp.example/accounts",
  "login_url": "https://idp.example/login"
}

जब जानी-पहचानी फ़ाइल में accounts_endpoint दिया जाता है, तो provider_urls को अनदेखा कर दिया जाता है. आरपी सीधे कॉन्फ़िगरेशन पर ले जा सकता है navigator.credentials.get() कॉल में मौजूद फ़ाइलें.

उपभोक्ता कॉन्फ़िगरेशन फ़ाइल https://idp.example/fedcm.json है. इसमें यह जानकारी शामिल है accounts प्रॉपर्टी, जो include का इस्तेमाल करके 'consumer' के बारे में बताती है.

{
  "accounts_endpoint": "https://idp.example/accounts",
  "client_metadata_endpoint": "/client_metadata",
  "login_url": "https://idp.example/login",
  "id_assertion_endpoint": "/assertion",
  "accounts": {
    "include": "consumer"
  }
}

एंटरप्राइज़ कॉन्फ़िगरेशन फ़ाइल https://idp.example/enterprise/fedcm.json पर है, इसमें accounts की ऐसी प्रॉपर्टी शामिल है जो 'enterprise' का इस्तेमाल करके, include.

{
  "accounts_endpoint": "https://idp.example/accounts",
  "client_metadata_endpoint": "/enterprise/client_metadata",
  "login_url": "https://idp.example/login",
  "id_assertion_endpoint": "/assertion",
  "accounts": {
    "include": "enterprise"
  }
}

आईडीपी (IdP) के सामान्य खाते एंडपॉइंट (इस उदाहरण में https://idp.example/accounts) उन खातों की सूची दिखाता है जो इसमें हर खाते के लिए अरे में labels असाइन की गई लेबल प्रॉपर्टी होती है. नीचे एक ऐसे उपयोगकर्ता के जवाब का उदाहरण दिया गया है जिसके पास दो खाते हैं. एक इसके लिए है उपभोक्ता और दूसरा कारोबार:

{
 "accounts": [{
   "id": "123",
   "given_name": "John",
   "name": "John Doe",
   "email": "john_doe@idp.example",
   "picture": "https://idp.example/profile/123",
   "labels": ["consumer"]
  }], [{
   "id": "4567",
   "given_name": "Jane",
   "name": "Jane Doe",
   "email": "jane_doe@idp.example",
   "picture": "https://idp.example/profile/4567",
   "labels": ["enterprise"]
  }]
}

जब आरपी, 'enterprise' उपयोगकर्ताओं को साइन इन करने की अनुमति देना चाहता है, तो वह इसमें 'enterprise' कॉन्फ़िगरेशन यूआरएल 'https://idp.example/enterprise/fedcm.json' है navigator.credentials.get() कॉल:

let { token } = await navigator.credentials.get({
  identity: {
    providers: [{
      clientId: '1234',
      nonce: '234234',
      configURL: 'https://idp.example/enterprise/fedcm.json',
    },
  }
});

इस वजह से, उपयोगकर्ता सिर्फ़ '4567' का खाता आईडी ही हस्ताक्षर कर सकते हैं इंच '123' का खाता आईडी, ब्राउज़र में चुपचाप छिपा रहता है, ताकि उपयोगकर्ता इसे ऐसे खाते के साथ उपलब्ध नहीं कराया जाएगा जो इस साइट पर मौजूद आईडीपी (IdP) के साथ काम नहीं करता.

ऑरिजिन ट्रायल: Storage Access API के लिए ट्रस्ट सिग्नल के तौर पर FedCM

Chrome 126, स्टोरेज का ऐक्सेस एपीआई. के साथ नहीं होगा, तो FedCM के ज़रिए दिया गया पहले से दिया गया अनुमति, यह विकल्प, स्टोरेज के ऐक्सेस के अनुरोध को अपने-आप मंज़ूरी देता है APIs.

यह तब काम आता है, जब एम्बेड किया गया कोई iframe, पसंद के हिसाब से बनाए गए संसाधनों को ऐक्सेस करना चाहता है: उदाहरण के लिए, अगर idp.example को rp.example में एम्बेड किया गया है और इसे आपके हिसाब से बनाया गया संसाधन. अगर ब्राउज़र तीसरे पक्ष की कुकी को ऐक्सेस करने पर पाबंदी लगाता है, तो भले ही उपयोगकर्ता ने FedCM के साथ idp.example का इस्तेमाल करके rp.example में साइन इन किया हो, एम्बेड किया गया idp.example iframe, पसंद के हिसाब से बनाए गए संसाधनों का अनुरोध नहीं कर पाएगा क्योंकि अनुरोधों में तीसरे पक्ष की कुकी शामिल नहीं होंगी.

इसके लिए, idp.example को इसके ज़रिए स्टोरेज ऐक्सेस करने की अनुमति लेनी होगी वेबसाइट पर एम्बेड किया गया iframe और इसे केवल अनुमति प्रॉम्प्ट.

स्टोरेज के ऐक्सेस के लिए, ट्रस्ट सिग्नल के तौर पर FedCM एपीआई, Storage Access API की अनुमति की जांच से, सिर्फ़ उस अनुमति के लिए मंज़ूरी नहीं मिलती यह किसी स्टोरेज ऐक्सेस प्रॉम्प्ट से मिलता है, लेकिन FedCM प्रॉम्प्ट.

// In top-level rp.example:

// Ensure FedCM permission has been granted.
const cred = await navigator.credentials.get({
  identity: {
    providers: [{
      configURL: 'https://idp.example/fedcm.json',
      clientId: '123',
    }],
  },
  mediation: 'optional',
});

// In an embedded IdP iframe:

// No user gesture is needed to call this, and the call will be auto-granted.
await document.requestStorageAccess();

// This returns `true`.
const hasAccess = await document.hasStorageAccess();

उपयोगकर्ता के FedCM से साइन इन करने के बाद, अनुमति अपने-आप मिल जाती है. ऐसा तब तक होता रहेगा, जब तक कि FedCM प्रमाणीकरण सक्रिय है. इसका मतलब है कि उपयोगकर्ता के डिसकनेक्ट होने के बाद, तो अनुमति का अनुरोध करने पर एक प्रॉम्प्ट दिखेगा.

ऑरिजिन ट्रायल में हिस्सा लें

Chrome को चालू करके, FedCM Continuation API बंडल को स्थानीय तौर पर आज़माया जा सकता है फ़्लैग करें Chrome 126 या इसके बाद के वर्शन पर chrome://flags#fedcm-authz. आप FedCM भी आज़मा सकते हैं इसे चालू करके, Storage Access API के लिए स्थानीय तौर पर ट्रस्ट सिग्नल के तौर पर Chrome 126 या उसके बाद के वर्शन पर #fedcm-with-storage-access-api.

ये सुविधाएं, ऑरिजिन ट्रायल के तौर पर भी उपलब्ध हैं. ऑरिजिन ट्रायल से आपको नई सुविधाएं आज़माने में मदद मिलती है. साथ ही, उनकी उपयोगिता, व्यावहारिकता, और उनके असर के बारे में सुझाव या राय दी जा सकती है. ज़्यादा जानकारी के लिए, ऑरिजिन ट्रायल का इस्तेमाल शुरू करना देखें.

FedCM Continuation API बंडल ऑरिजिन को आज़माने के लिए ट्रायल, दो ऑरिजिन ट्रायल टोकन बनाएं:

  • मुफ़्त में आज़माने की सुविधा के लिए रजिस्टर करें. आईडीपी (IdP) के लिए टोकन एम्बेड करें ऑरिजिन के लिए सेट किया गया है.
  • ऑरिजिन ट्रायल के लिए रजिस्टर करने के लिए, तीसरे पक्ष के मैचिंग चेकबॉक्स पर सही का निशान लगाएं. नीचे दिए गए निर्देशों का पालन करें: आरपी (RP) को आरपी के लिए टोकन एम्बेड करने के लिए.

अगर आपको बटन बटन का इस्तेमाल करके, Continuation API को चालू करना है, तो फ़्लो, बटन मोड चालू करें एपीआई का ऑरिजिन मुफ़्त में आज़माने की अवधि साथ ही:

स्टोरेज ऐक्सेस एपीआई के ऑरिजिन के लिए, ट्रस्ट सिग्नल के तौर पर FedCM को आज़माने के लिए मुफ़्त में आज़माने की अवधि:

The Continuation API बंडल ऑरिजिन ट्रायल और FedCM Storage Access API का ऑरिजिन ट्रायल, Chrome 126 में उपलब्ध है.

आरपी के लिए, तीसरे पक्ष का ऑरिजिन ट्रायल रजिस्टर करें

  1. ऑरिजिन ट्रायल के रजिस्ट्रेशन पेज पर जाएं.
  2. टोकन का अनुरोध करने के लिए, रजिस्टर करें बटन पर क्लिक करें और फ़ॉर्म भरें.
  3. आईडीपी (IdP) के ऑरिजिन को वेब ऑरिजिन के तौर पर डालें.
  4. अन्य ऑरिजिन पर JavaScript वाला टोकन इंजेक्ट करने के लिए, तीसरे पक्ष की मैचिंग की जांच करें.
  5. सबमिट करें पर क्लिक करें.
  6. जारी किए गए टोकन को तीसरे पक्ष की वेबसाइट पर जोड़ें.

टोकन को तीसरे पक्ष की वेबसाइट पर एम्बेड करने के लिए, आईडीपी (IdP) में यह कोड जोड़ें आईडीपी (IdP) के ऑरिजिन से मिलने वाली JavaScript लाइब्रेरी या SDK टूल.

const tokenElement = document.createElement('meta');
tokenElement.httpEquiv = 'origin-trial';
tokenElement.content = 'TOKEN_GOES_HERE';
document.head.appendChild(tokenElement);

TOKEN_GOES_HERE को अपने टोकन से बदलें.