chrome.identity

বর্ণনা

OAuth2 অ্যাক্সেস টোকেন পেতে chrome.identity API ব্যবহার করুন।

অনুমতি

identity

প্রকারভেদ

AccountInfo

বৈশিষ্ট্য

  • আইডি

    স্ট্রিং

    অ্যাকাউন্টের জন্য একটি অনন্য শনাক্তকারী। অ্যাকাউন্টের আজীবন এই আইডি পরিবর্তন হবে না।

AccountStatus

Chrome 84+

এনাম

"সিঙ্ক"
প্রাথমিক অ্যাকাউন্টের জন্য সিঙ্ক সক্রিয় করা হয়েছে তা নির্দিষ্ট করে৷

"যেকোনো"
একটি প্রাথমিক অ্যাকাউন্টের অস্তিত্ব নির্দিষ্ট করে, যদি থাকে।

GetAuthTokenResult

Chrome 105+

বৈশিষ্ট্য

  • স্কোপ মঞ্জুর করা হয়েছে

    স্ট্রিং[] ঐচ্ছিক

    এক্সটেনশনে দেওয়া OAuth2 স্কোপের একটি তালিকা।

  • টোকেন

    স্ট্রিং ঐচ্ছিক

    অনুরোধের সাথে যুক্ত নির্দিষ্ট টোকেন।

InvalidTokenDetails

বৈশিষ্ট্য

  • টোকেন

    স্ট্রিং

    নির্দিষ্ট টোকেন যা ক্যাশে থেকে সরানো উচিত।

ProfileDetails

Chrome 84+

বৈশিষ্ট্য

  • অ্যাকাউন্ট স্ট্যাটাস

    একটি প্রোফাইলে সাইন ইন করা প্রাথমিক অ্যাকাউন্টের একটি স্ট্যাটাস যার ProfileUserInfo ফেরত দেওয়া উচিত। SYNC অ্যাকাউন্ট স্থিতিতে ডিফল্ট।

ProfileUserInfo

বৈশিষ্ট্য

  • ইমেইল

    স্ট্রিং

    বর্তমান প্রোফাইলে সাইন ইন করা ব্যবহারকারী অ্যাকাউন্টের জন্য একটি ইমেল ঠিকানা। খালি যদি ব্যবহারকারী সাইন ইন না করে বা identity.email ম্যানিফেস্ট অনুমতি নির্দিষ্ট না থাকে।

  • আইডি

    স্ট্রিং

    অ্যাকাউন্টের জন্য একটি অনন্য শনাক্তকারী। অ্যাকাউন্টের আজীবন এই আইডি পরিবর্তন হবে না। খালি যদি ব্যবহারকারী সাইন ইন না করে থাকে বা (M41+ এ) identity.email ম্যানিফেস্ট অনুমতি নির্দিষ্ট না থাকে।

TokenDetails

বৈশিষ্ট্য

  • অ্যাকাউন্ট

    AccountInfo ঐচ্ছিক

    অ্যাকাউন্ট আইডি যার টোকেন ফেরত দিতে হবে। নির্দিষ্ট করা না থাকলে, ফাংশনটি Chrome প্রোফাইল থেকে একটি অ্যাকাউন্ট ব্যবহার করবে: যদি একটি থাকে তবে সিঙ্ক অ্যাকাউন্ট, বা অন্যথায় প্রথম Google ওয়েব অ্যাকাউন্ট।

  • দানাদার অনুমতি সক্ষম করুন

    বুলিয়ান ঐচ্ছিক

    Chrome 87+

    enableGranularPermissions ফ্ল্যাগ এক্সটেনশনগুলিকে দানাদার অনুমতি সম্মতি স্ক্রীনের প্রথম দিকে অপ্ট-ইন করার অনুমতি দেয়, যেখানে অনুরোধ করা অনুমতিগুলি পৃথকভাবে মঞ্জুর বা অস্বীকার করা হয়।

  • ইন্টারেক্টিভ

    বুলিয়ান ঐচ্ছিক

    একটি টোকেন আনার জন্য ব্যবহারকারীকে Chrome-এ সাইন-ইন করতে হতে পারে, অথবা অ্যাপ্লিকেশনের অনুরোধকৃত স্কোপগুলি অনুমোদন করতে হতে পারে৷ ইন্টারেক্টিভ পতাকা true হলে, getAuthToken ব্যবহারকারীকে প্রয়োজন অনুযায়ী অনুরোধ করবে। যখন পতাকা false বা বাদ দেওয়া হয়, তখন getAuthToken ব্যর্থতা ফিরিয়ে দেবে যে কোনো সময় প্রম্পটের প্রয়োজন হবে।

  • সুযোগ

    স্ট্রিং[] ঐচ্ছিক

    অনুরোধ করার জন্য OAuth2 স্কোপের একটি তালিকা।

    যখন scopes ক্ষেত্রটি উপস্থিত থাকে, তখন এটি manifest.json-এ নির্দিষ্ট করা স্কোপের তালিকাকে ওভাররাইড করে।

WebAuthFlowDetails

বৈশিষ্ট্য

  • AbortOnLoadForNoninteractive

    বুলিয়ান ঐচ্ছিক

    Chrome 113+

    পৃষ্ঠা লোড হওয়ার পরে অ-ইন্টারেক্টিভ অনুরোধের জন্য launchWebAuthFlow বন্ধ করতে হবে কিনা। এই পরামিতি ইন্টারেক্টিভ প্রবাহকে প্রভাবিত করে না।

    true (ডিফল্ট) সেট করা হলে পৃষ্ঠা লোড হওয়ার সাথে সাথে প্রবাহটি বন্ধ হয়ে যাবে। false সেট করা হলে, timeoutMsForNonInteractive পাস হওয়ার পরেই প্রবাহটি বন্ধ হয়ে যাবে। এটি পরিচয় প্রদানকারীদের জন্য উপযোগী যারা পৃষ্ঠা লোড হওয়ার পরে পুনঃনির্দেশ করতে JavaScript ব্যবহার করে।

  • ইন্টারেক্টিভ

    বুলিয়ান ঐচ্ছিক

    ইন্টারেক্টিভ মোডে প্রমাণীকরণ প্রবাহ চালু করা হবে কিনা।

    যেহেতু কিছু প্রমাণীকরণ প্রবাহ অবিলম্বে একটি ফলাফলের URL-এ পুনঃনির্দেশিত হতে পারে, launchWebAuthFlow তার ওয়েব ভিউকে লুকিয়ে রাখে যতক্ষণ না প্রথম নেভিগেশন হয় চূড়ান্ত URL-এ পুনঃনির্দেশিত হয়, অথবা প্রদর্শিত হওয়ার জন্য একটি পৃষ্ঠা লোড করা শেষ না হয়।

    interactive পতাকা true হলে, একটি পৃষ্ঠা লোড সম্পূর্ণ হলে উইন্ডোটি প্রদর্শিত হবে। যদি পতাকাটি false হয় বা বাদ দেওয়া হয়, প্রাথমিক নেভিগেশন প্রবাহটি সম্পূর্ণ না করলে, launchWebAuthFlow একটি ত্রুটি সহ ফিরে আসবে৷

    পুনঃনির্দেশের জন্য জাভাস্ক্রিপ্ট ব্যবহার করে এমন ফ্লোগুলির জন্য, পৃষ্ঠাটিকে যেকোনো পুনঃনির্দেশ করার সুযোগ দেওয়ার জন্য timeoutMsForNonInteractive MsForNonInteractive সেট করার সাথে abortOnLoadForNonInteractive false সেট করা যেতে পারে।

  • টাইমআউটMsForNoninteractive

    সংখ্যা ঐচ্ছিক

    Chrome 113+

    সর্বাধিক সময়, মিলিসেকেন্ডে, launchWebAuthFlow মোট নন-ইন্টারেক্টিভ মোডে চালানোর অনুমতি দেওয়া হয়। interactive false হলে শুধুমাত্র একটি প্রভাব আছে.

  • url

    স্ট্রিং

    ইউআরএল যা প্রমাণীকরণ প্রবাহ শুরু করে।

পদ্ধতি

clearAllCachedAuthTokens()

Chrome 87+
chrome.identity.clearAllCachedAuthTokens(): Promise<void>

আইডেন্টিটি এপিআই এর অবস্থা রিসেট করে:

  • টোকেন ক্যাশে থেকে সমস্ত OAuth2 অ্যাক্সেস টোকেন সরিয়ে দেয়
  • ব্যবহারকারীর অ্যাকাউন্ট পছন্দগুলি সরিয়ে দেয়
  • সমস্ত প্রমাণীকরণ প্রবাহ থেকে ব্যবহারকারীকে ডি-অনুমোদিত করে

রিটার্নস

  • প্রতিশ্রুতি <void>

    Chrome 106+

getAccounts()

দেব চ্যানেল
chrome.identity.getAccounts(): Promise<AccountInfo[]>

প্রোফাইলে উপস্থিত অ্যাকাউন্টগুলি বর্ণনা করে AccountInfo বস্তুর একটি তালিকা পুনরুদ্ধার করে।

getAccounts শুধুমাত্র dev চ্যানেলে সমর্থিত।

রিটার্নস

getAuthToken()

chrome.identity.getAuthToken(
  details?: TokenDetails,
)
: Promise<GetAuthTokenResult>

manifest.json এর oauth2 বিভাগে নির্দিষ্ট করা ক্লায়েন্ট আইডি এবং স্কোপ ব্যবহার করে একটি OAuth2 অ্যাক্সেস টোকেন পায়।

আইডেন্টিটি এপিআই মেমরিতে অ্যাক্সেস টোকেন ক্যাশ করে, তাই যেকোন সময় টোকেন প্রয়োজন হলে getAuthToken অ-ইন্টারেক্টিভভাবে কল করা ঠিক আছে। টোকেন ক্যাশে স্বয়ংক্রিয়ভাবে মেয়াদ শেষ হয়ে যায়।

একটি ভাল ব্যবহারকারীর অভিজ্ঞতার জন্য এটি গুরুত্বপূর্ণ যে ইন্টারেক্টিভ টোকেন অনুরোধগুলি আপনার অ্যাপে UI দ্বারা শুরু করা হয় যা ব্যাখ্যা করে অনুমোদনের জন্য। এটি করতে ব্যর্থ হলে আপনার ব্যবহারকারীরা অনুমোদনের অনুরোধ পেতে পারে, অথবা ক্রোম সাইন ইন স্ক্রীনে প্রবেশ করবে যদি তারা সাইন ইন না করে থাকে, কোন প্রসঙ্গ ছাড়াই। বিশেষ করে, আপনার অ্যাপটি প্রথম চালু হলে ইন্টারেক্টিভভাবে getAuthToken ব্যবহার করবেন না।

দ্রষ্টব্য: যখন একটি কলব্যাকের সাথে কল করা হয়, তখন একটি বস্তু ফেরত দেওয়ার পরিবর্তে এই ফাংশনটি কলব্যাকে পাস করা পৃথক আর্গুমেন্ট হিসাবে দুটি বৈশিষ্ট্য ফিরিয়ে দেবে।

পরামিতি

  • বিস্তারিত

    TokenDetails ঐচ্ছিক

    টোকেন বিকল্প।

রিটার্নস

getProfileUserInfo()

chrome.identity.getProfileUserInfo(
  details?: ProfileDetails,
)
: Promise<ProfileUserInfo>

একটি প্রোফাইলে সাইন ইন করা ব্যবহারকারীর ইমেল ঠিকানা এবং অস্পষ্ট gaia আইডি পুনরুদ্ধার করে৷

identity.email ম্যানিফেস্ট অনুমতি প্রয়োজন. অন্যথায়, একটি খালি ফলাফল প্রদান করে।

এই API দুটি উপায়ে identity.getAccounts থেকে আলাদা। ফেরত দেওয়া তথ্য অফলাইনে উপলব্ধ, এবং এটি শুধুমাত্র প্রোফাইলের প্রাথমিক অ্যাকাউন্টে প্রযোজ্য।

পরামিতি

রিটার্নস

getRedirectURL()

chrome.identity.getRedirectURL(
  path?: string,
)
: string

launchWebAuthFlow এ ব্যবহার করার জন্য একটি পুনঃনির্দেশ URL তৈরি করে।

তৈরি করা URLগুলি https://<app-id>.chromiumapp.org/* প্যাটার্নের সাথে মেলে।

পরামিতি

  • পথ

    স্ট্রিং ঐচ্ছিক

    তৈরি করা URL-এর শেষে পাথ যোগ করা হয়েছে।

রিটার্নস

  • স্ট্রিং

launchWebAuthFlow()

chrome.identity.launchWebAuthFlow(
  details: WebAuthFlowDetails,
)
: Promise<string | undefined>

নির্দিষ্ট URL-এ একটি প্রমাণীকরণ প্রবাহ শুরু করে।

এই পদ্ধতিটি একটি ওয়েব ভিউ চালু করে এবং প্রদানকারীর প্রমাণীকরণ প্রবাহের প্রথম URL-এ নেভিগেট করে নন-Google পরিচয় প্রদানকারীর সাথে প্রমাণীকরণ প্রবাহকে সক্ষম করে। যখন প্রদানকারী প্যাটার্ন https://<app-id>.chromiumapp.org/* সাথে মিলে যাওয়া একটি URL এ পুনঃনির্দেশ করে, তখন উইন্ডোটি বন্ধ হয়ে যাবে এবং চূড়ান্ত পুনঃনির্দেশ URLটি callback ফাংশনে পাঠানো হবে৷

একটি ভাল ব্যবহারকারীর অভিজ্ঞতার জন্য এটি গুরুত্বপূর্ণ যে ইন্টারেক্টিভ প্রমাণীকরণ ফ্লোগুলি আপনার অ্যাপে UI দ্বারা শুরু করা হয় তা ব্যাখ্যা করে যে অনুমোদনটি কীসের জন্য৷ এটি করতে ব্যর্থ হলে আপনার ব্যবহারকারীরা কোন প্রসঙ্গ ছাড়াই অনুমোদনের অনুরোধ পেতে পারে। বিশেষ করে, আপনার অ্যাপটি প্রথম চালু হলে একটি ইন্টারেক্টিভ প্রমাণীকরণ প্রবাহ চালু করবেন না।

পরামিতি

রিটার্নস

  • প্রতিশ্রুতি<স্ট্রিং | undefined>

    Chrome 106+

removeCachedAuthToken()

chrome.identity.removeCachedAuthToken(
  details: InvalidTokenDetails,
)
: Promise<void>

Identity API-এর টোকেন ক্যাশে থেকে একটি OAuth2 অ্যাক্সেস টোকেন সরিয়ে দেয়।

যদি একটি অ্যাক্সেস টোকেন অবৈধ বলে আবিষ্কৃত হয়, তবে এটি ক্যাশে থেকে মুছে ফেলার জন্য CachedAuthToken কে সরিয়ে দেওয়া উচিত। অ্যাপটি তারপর getAuthToken দিয়ে একটি নতুন টোকেন পুনরুদ্ধার করতে পারে।

পরামিতি

রিটার্নস

  • প্রতিশ্রুতি <void>

    Chrome 106+

ঘটনা

onSignInChanged

chrome.identity.onSignInChanged.addListener(
  callback: function,
)

ব্যবহারকারীর প্রোফাইলে একটি অ্যাকাউন্টের জন্য সাইন ইন অবস্থা পরিবর্তন হলে বহিস্কার করা হয়৷

পরামিতি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি এর মতো দেখাচ্ছে:

    (account: AccountInfo, signedIn: boolean) => void