chrome.identity

রিফ্রেশ তারিখ: ২০২৬-০৯-২৫ রোবটস: নোইনডেক্স

বর্ণনা

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

অনুমতি

identity

প্রকারভেদ

AccountInfo

বৈশিষ্ট্য

  • আইডি

    স্ট্রিং

    অ্যাকাউন্টের জন্য একটি অনন্য শনাক্তকারী। অ্যাকাউন্টের পুরো জীবনকাল জুড়ে এই আইডিটি অপরিবর্তিত থাকবে।

AccountStatus

ক্রোম ৮৪+

এনাম

"সিঙ্ক"
এটি নির্দেশ করে যে প্রাথমিক অ্যাকাউন্টের জন্য সিঙ্ক সক্রিয় করা আছে।

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

GetAuthTokenResult

ক্রোম ১০৫+

বৈশিষ্ট্য

  • মঞ্জুরকৃত পরিধি

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

    এক্সটেনশনটিকে প্রদত্ত OAuth2 স্কোপগুলির একটি তালিকা।

  • টোকেন

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

    অনুরোধটির সাথে সংশ্লিষ্ট নির্দিষ্ট টোকেন।

InvalidTokenDetails

বৈশিষ্ট্য

  • টোকেন

    স্ট্রিং

    যে নির্দিষ্ট টোকেনটি ক্যাশ থেকে মুছে ফেলা উচিত।

ProfileDetails

ক্রোম ৮৪+

বৈশিষ্ট্য

  • অ্যাকাউন্টের অবস্থা

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

ProfileUserInfo

বৈশিষ্ট্য

  • ইমেইল

    স্ট্রিং

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

  • আইডি

    স্ট্রিং

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

TokenDetails

বৈশিষ্ট্য

  • অ্যাকাউন্ট

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

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

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

    ক্রোম ৮৭+

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

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

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

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

  • পরিধি

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

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

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

WebAuthFlowDetails

বৈশিষ্ট্য

  • abortOnLoadForNonInteractive

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

    ক্রোম ১১৩+

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

    যখন এটি ' true (ডিফল্ট) সেট করা থাকে, তখন পেজ লোড হওয়ার সাথে সাথেই ফ্লোটি বন্ধ হয়ে যাবে। যখন এটি false সেট করা থাকে, তখন timeoutMsForNonInteractive ' সময় অতিবাহিত হওয়ার পরেই ফ্লোটি বন্ধ হবে। এটি সেইসব আইডেন্টিটি প্রোভাইডারদের জন্য উপযোগী, যারা পেজ লোড হওয়ার পর রিডাইরেকশন করার জন্য জাভাস্ক্রিপ্ট ব্যবহার করে।

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

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

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

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

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

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

  • নন-ইন্টারেক্টিভের জন্য টাইমআউটএমএস

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

    ক্রোম ১১৩+

    নন-ইন্টারেক্টিভ মোডে launchWebAuthFlow মোট যত সর্বোচ্চ সময় (মিলিসেকেন্ডে) চলতে পারে। এটি শুধুমাত্র তখনই কার্যকর হয় যখন interactive false হয়।

  • ইউআরএল

    স্ট্রিং

    যে ইউআরএলটি প্রমাণীকরণ প্রক্রিয়া শুরু করে।

পদ্ধতি

clearAllCachedAuthTokens()

প্রমিস ক্রোম ৮৭+
chrome.identity.clearAllCachedAuthTokens(
  callback?: function,
)
: Promise<void>

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

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

প্যারামিটার

  • কলব্যাক

    ফাংশন ঐচ্ছিক

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

    () => void

ফেরত

  • প্রতিশ্রুতি<শূন্য>

    ক্রোম ১০৬+

    একটি প্রমিজ রিটার্ন করে যা স্টেট ক্লিয়ার হয়ে গেলে রিজলভ হয়।

    প্রমিস শুধুমাত্র ম্যানিফেস্ট ভি৩ এবং এর পরবর্তী সংস্করণগুলোতে সমর্থিত, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হবে।

getAccounts()

প্রমিজ দেব চ্যানেল
chrome.identity.getAccounts(
  callback?: function,
)
: Promise<AccountInfo[]>

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

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

প্যারামিটার

ফেরত

  • প্রতিশ্রুতি< অ্যাকাউন্ট তথ্য []>

    প্রমিস শুধুমাত্র ম্যানিফেস্ট ভি৩ এবং এর পরবর্তী সংস্করণগুলোতে সমর্থিত, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হবে।

getAuthToken()

প্রতিশ্রুতি
chrome.identity.getAuthToken(
  details?: TokenDetails,
  callback?: function,
)
: Promise<GetAuthTokenResult>

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

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

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

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

প্যারামিটার

  • বিস্তারিত

    টোকেন বিকল্পসমূহ।

  • কলব্যাক

    ফাংশন ঐচ্ছিক

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

    (result: GetAuthTokenResult) => void

ফেরত

  • Promise< GetAuthTokenResult >

    ক্রোম ১০৫+

    একটি প্রমিজ রিটার্ন করে যা ম্যানিফেস্টে নির্দিষ্ট করা OAuth2 অ্যাক্সেস টোকেন দিয়ে রিজলভ হয়, অথবা কোনো ত্রুটি থাকলে রিজেক্ট হয়। ক্রোম ৮৭ থেকে grantedScopes প্যারামিটারটি স্বয়ংক্রিয়ভাবে পূরণ করা হয়। যখন এটি উপলব্ধ থাকে, তখন এই প্যারামিটারটিতে রিটার্ন করা টোকেনের সাথে সম্পর্কিত অনুমোদিত স্কোপগুলির তালিকা থাকে।

    প্রমিস শুধুমাত্র ম্যানিফেস্ট ভি৩ এবং এর পরবর্তী সংস্করণগুলোতে সমর্থিত, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হবে।

getProfileUserInfo()

প্রতিশ্রুতি
chrome.identity.getProfileUserInfo(
  details?: ProfileDetails,
  callback?: function,
)
: Promise<ProfileUserInfo>

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

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

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

প্যারামিটার

ফেরত

  • ক্রোম ১০৬+

    একটি প্রমিজ রিটার্ন করে যা প্রাইমারি ক্রোম অ্যাকাউন্টের ProfileUserInfo দিয়ে রিজলভ হয়, অথবা প্রদত্ত details অ্যাকাউন্টটি বিদ্যমান না থাকলে একটি খালি ProfileUserInfo রিটার্ন করে।

    প্রমিস শুধুমাত্র ম্যানিফেস্ট ভি৩ এবং এর পরবর্তী সংস্করণগুলোতে সমর্থিত, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হবে।

getRedirectURL()

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

launchWebAuthFlow এ ব্যবহারের জন্য একটি রিডাইরেক্ট ইউআরএল তৈরি করে।

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

প্যারামিটার

  • পথ

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

    তৈরি হওয়া URL-এর শেষে পাথটি যুক্ত করা হয়।

ফেরত

  • স্ট্রিং

launchWebAuthFlow()

প্রতিশ্রুতি
chrome.identity.launchWebAuthFlow(
  details: WebAuthFlowDetails,
  callback?: function,
)
: Promise<string | undefined>

নির্দিষ্ট ইউআরএল-এ একটি প্রমাণীকরণ প্রক্রিয়া শুরু করে।

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

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

প্যারামিটার

  • WebAuth ফ্লো অপশন।

  • কলব্যাক

    ফাংশন ঐচ্ছিক

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

    (responseUrl?: string) => void

    • প্রতিক্রিয়া ইউআরএল

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

ফেরত

  • প্রতিশ্রুতি<string | undefined>

    ক্রোম ১০৬+

    একটি প্রমিস রিটার্ন করে, যা রিজলভ হলে ইউআরএলটি আপনার অ্যাপ্লিকেশনে রিডাইরেক্ট হয়ে যায়।

    প্রমিস শুধুমাত্র ম্যানিফেস্ট ভি৩ এবং এর পরবর্তী সংস্করণগুলোতে সমর্থিত, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হবে।

removeCachedAuthToken()

প্রতিশ্রুতি
chrome.identity.removeCachedAuthToken(
  details: InvalidTokenDetails,
  callback?: function,
)
: Promise<void>

আইডেন্টিটি এপিআই-এর টোকেন ক্যাশে থেকে একটি OAuth2 অ্যাক্সেস টোকেন মুছে ফেলে।

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

প্যারামিটার

  • টোকেন তথ্য।

  • কলব্যাক

    ফাংশন ঐচ্ছিক

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

    () => void

ফেরত

  • প্রতিশ্রুতি<শূন্য>

    ক্রোম ১০৬+

    একটি প্রমিস রিটার্ন করে, যা ক্যাশ থেকে টোকেনটি সরিয়ে ফেলা হলে রিজলভ হয়।

    প্রমিস শুধুমাত্র ম্যানিফেস্ট ভি৩ এবং এর পরবর্তী সংস্করণগুলোতে সমর্থিত, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হবে।

ইভেন্টগুলি

onSignInChanged

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

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

প্যারামিটার

  • কলব্যাক

    ফাংশন

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

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