browser.identity

বিবরণ

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

অনুমতি

identity

ধরন

AccountInfo

প্রপার্টি

  • id

    স্ট্রিং

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

AccountStatus

Chrome 84+ Chrome 148 থেকে browser.*

Enum

"সিঙ্ক"
প্রাথমিক অ্যাকাউন্টের জন্য সিঙ্ক চালু করা আছে কিনা তা উল্লেখ করে।

"ANY"
প্রাথমিক অ্যাকাউন্ট থাকলে, তা নির্দিষ্ট করে।

GetAuthTokenResult

Chrome 105+ Chrome 148 থেকে browser.*

প্রপার্টি

  • grantedScopes

    string[] ঐচ্ছিক

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

  • টোকেন

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

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

InvalidTokenDetails

প্রপার্টি

  • টোকেন

    স্ট্রিং

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

ProfileDetails

Chrome 84+ Chrome 148 থেকে browser.*

প্রপার্টি

  • accountStatus

    AccountStatus ঐচ্ছিক

    প্রোফাইলে সাইন-ইন করা প্রাথমিক অ্যাকাউন্টের স্ট্যাটাস যার ProfileUserInfo ফেরত দিতে হবে। ডিফল্ট হিসেবে SYNC অ্যাকাউন্টের স্ট্যাটাস সেট করা থাকে।

ProfileUserInfo

প্রপার্টি

  • ইমেল

    স্ট্রিং

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

  • id

    স্ট্রিং

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

TokenDetails

প্রপার্টি

  • অ্যাকাউন্ট

    AccountInfo ঐচ্ছিক

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

  • enableGranularPermissions

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

    Chrome 87+ Chrome 148 থেকে browser.*

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

  • ইন্টারঅ্যাক্টিভ

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

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

  • স্কোপ

    string[] ঐচ্ছিক

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

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

WebAuthFlowDetails

প্রপার্টি

  • abortOnLoadForNonInteractive

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

    Chrome 113+ Chrome 148 থেকে browser.*

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

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

  • ইন্টারঅ্যাক্টিভ

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

    ইন্টার‍্যাক্টিভ মোডে অথেন্টিকেশন ফ্লো চালু করা হবে কিনা।

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

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

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

  • timeoutMsForNonInteractive

    নম্বর ঐচ্ছিক

    Chrome 113+ Chrome 148 থেকে browser.*

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

  • URL

    স্ট্রিং

    যে URL অথেনটিকেশন ফ্লো শুরু করে।

পদ্ধতি

clearAllCachedAuthTokens()

Chrome 87+ Chrome 148 থেকে browser.*
browser.identity.clearAllCachedAuthTokens(): Promise<void>

Identity API-এর স্ট্যাটাস রিসেট করে:

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

রিটার্ন

  • <void> প্রমিস

    Chrome 106+ Chrome 148 থেকে browser.*

    স্টেট মুছে দেওয়া হলে, একটি Promise রিটার্ন করে।

getAccounts()

ডেভ চ্যানেল
browser.identity.getAccounts(): Promise<AccountInfo[]>

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

getAccounts শুধুমাত্র ডেভ চ্যানেলে কাজ করে।

রিটার্ন

getAuthToken()

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

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

Identity API মেমরিতে অ্যাক্সেস টোকেন ক্যাশে করে, তাই টোকেনের প্রয়োজন হলে যেকোনও সময় নন-ইন্টার‍্যাক্টিভভাবে getAuthToken কল করা যেতে পারে। টোকেন ক্যাশে অটোমেটিক মেয়াদ শেষ হওয়ার বিষয়টি ম্যানেজ করে।

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

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

প্যারামিটারগুলি

  • বিস্তারিত বিবরণ

    TokenDetails ঐচ্ছিক

    টোকেন সংক্রান্ত বিকল্প।

রিটার্ন

  • Chrome 105+ Chrome 148 থেকে browser.*

    একটি Promise রিটার্ন করে যা ম্যানিফেস্ট দ্বারা নির্দিষ্ট করা OAuth2 অ্যাক্সেস টোকেনের মাধ্যমে সমাধান করে বা কোনও সমস্যা থাকলে প্রত্যাখ্যান করে। Chrome 87 থেকে grantedScopes প্যারামিটার পপুলেট করা হয়েছে। উপলভ্য থাকলে, এই প্যারামিটারে ফেরত পাঠানো টোকেনের সাথে সম্পর্কিত অনুমোদিত স্কোপের তালিকা থাকে।

getProfileUserInfo()

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

প্রোফাইলে সাইন-ইন করা ব্যবহারকারীর ইমেল আইডি এবং অস্পষ্ট GAIA আইডি ফিরিয়ে আনে।

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

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

প্যারামিটারগুলি

  • বিস্তারিত বিবরণ

    ProfileDetails ঐচ্ছিক

    Chrome 84+ Chrome 148 থেকে browser.*

    প্রোফাইলের বিকল্প।

রিটার্ন

  • Chrome 106+ Chrome 148 থেকে browser.*

    একটি Promise রিটার্ন করে যা প্রাইমারি Chrome অ্যাকাউন্টের ProfileUserInfo-এর সাথে সমাধান করে, অথবা প্রদত্ত details সহ অ্যাকাউন্টটি না থাকলে একটি খালি ProfileUserInfo রিটার্ন করে।

getRedirectURL()

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

launchWebAuthFlow-এ ব্যবহার করার জন্য রিডাইরেক্ট URL তৈরি করে।

জেনারেট করা URL, https://<app-id>.chromiumapp.org/* প্যাটার্নের সাথে ম্যাচ করে।

প্যারামিটারগুলি

  • পথ

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

    জেনারেট করা URL-এর শেষে পাথ যোগ করা হয়েছে।

রিটার্ন

  • স্ট্রিং

launchWebAuthFlow()

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

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

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

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

প্যারামিটারগুলি

  • বিস্তারিত বিবরণ

    WebAuth ফ্লো সংক্রান্ত বিকল্প।

রিটার্ন

  • Promise<string | undefined>

    Chrome 106+ Chrome 148 থেকে browser.*

    একটি Promise রিটার্ন করে যা আপনার অ্যাপ্লিকেশনে রিডাইরেক্ট করা URL-এর মাধ্যমে সমাধান করে।

removeCachedAuthToken()

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

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

কোনও অ্যাক্সেস টোকেন অবৈধ বলে শনাক্ত করা হলে, ক্যাশে থেকে সেটি সরানোর জন্য removeCachedAuthToken-এ পাস করতে হবে। অ্যাপটি তখন getAuthToken-এর মাধ্যমে একটি নতুন টোকেন পেতে পারে।

প্যারামিটারগুলি

  • বিস্তারিত বিবরণ

    টোকেন সংক্রান্ত তথ্য।

রিটার্ন

  • <void> প্রমিস

    Chrome 106+ Chrome 148 থেকে browser.*

    ক্যাশ থেকে টোকেন সরিয়ে দেওয়া হলে, একটি Promise রিটার্ন করে যা সমাধান করে।

ইভেন্ট

onSignInChanged

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

ব্যবহারকারীর প্রোফাইলে কোনও অ্যাকাউন্টের সাইন-ইন স্ট্যাটাস পরিবর্তন হলে ফায়ার করা হয়।

প্যারামিটারগুলি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি দেখতে এইরকম:

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

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

      বুলিয়ান