রিফ্রেশ তারিখ: ২০২৬-০৯-২৫ রোবটস: নোইনডেক্স
বর্ণনা
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একটি এরর সহ রিটার্ন করবে।যেসব ফ্লো রিডাইরেকশনের জন্য জাভাস্ক্রিপ্ট ব্যবহার করে, সেগুলোর ক্ষেত্রে পেজটিকে যেকোনো রিডাইরেক্ট সম্পন্ন করার সুযোগ দেওয়ার জন্য
abortOnLoadForNonInteractivefalseএবংtimeoutMsForNonInteractiveকে false সেট করা যেতে পারে। - নন-ইন্টারেক্টিভের জন্য টাইমআউটএমএস
সংখ্যা ঐচ্ছিক
ক্রোম ১১৩+নন-ইন্টারেক্টিভ মোডে
launchWebAuthFlowমোট যত সর্বোচ্চ সময় (মিলিসেকেন্ডে) চলতে পারে। এটি শুধুমাত্র তখনই কার্যকর হয় যখনinteractivefalseহয়। - ইউআরএল
স্ট্রিং
যে ইউআরএলটি প্রমাণীকরণ প্রক্রিয়া শুরু করে।
পদ্ধতি
clearAllCachedAuthTokens()
chrome.identity.clearAllCachedAuthTokens(
callback?: function,
): Promise<void>
আইডেন্টিটি এপিআই-এর অবস্থা রিসেট করে:
- টোকেন ক্যাশে থেকে সমস্ত OAuth2 অ্যাক্সেস টোকেন মুছে ফেলে
- ব্যবহারকারীর অ্যাকাউন্টের পছন্দগুলি মুছে ফেলে
- ব্যবহারকারীকে সমস্ত প্রমাণীকরণ প্রক্রিয়া থেকে অনুমোদনহীন করে।
প্যারামিটার
- কলব্যাক
ফাংশন ঐচ্ছিক
callbackপ্যারামিটারটি দেখতে এইরকম:() => void
ফেরত
প্রতিশ্রুতি<শূন্য>
ক্রোম ১০৬+একটি প্রমিজ রিটার্ন করে যা স্টেট ক্লিয়ার হয়ে গেলে রিজলভ হয়।
প্রমিস শুধুমাত্র ম্যানিফেস্ট ভি৩ এবং এর পরবর্তী সংস্করণগুলোতে সমর্থিত, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হবে।
getAccounts()
chrome.identity.getAccounts(
callback?: function,
): Promise<AccountInfo[]>
প্রোফাইলে উপস্থিত অ্যাকাউন্টগুলোর বিবরণ প্রদানকারী AccountInfo অবজেক্টগুলোর একটি তালিকা পুনরুদ্ধার করে।
getAccounts শুধুমাত্র ডেভ চ্যানেলে সমর্থিত।
প্যারামিটার
- কলব্যাক
ফাংশন ঐচ্ছিক
callbackপ্যারামিটারটি দেখতে এইরকম:(accounts: AccountInfo[]) => void
- অ্যাকাউন্ট
ফেরত
প্রতিশ্রুতি< অ্যাকাউন্ট তথ্য []>
প্রমিস শুধুমাত্র ম্যানিফেস্ট ভি৩ এবং এর পরবর্তী সংস্করণগুলোতে সমর্থিত, অন্যান্য প্ল্যাটফর্মে কলব্যাক ব্যবহার করতে হবে।
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 থেকে দুটি দিক দিয়ে আলাদা। এর মাধ্যমে প্রাপ্ত তথ্য অফলাইনে পাওয়া যায় এবং এটি শুধুমাত্র প্রোফাইলের প্রাথমিক অ্যাকাউন্টের ক্ষেত্রেই প্রযোজ্য।
প্যারামিটার
- বিস্তারিত
প্রোফাইলের বিবরণ ( ঐচ্ছিক)
ক্রোম ৮৪+প্রোফাইল বিকল্পসমূহ।
- কলব্যাক
ফাংশন ঐচ্ছিক
callbackপ্যারামিটারটি দেখতে এইরকম:(userInfo: ProfileUserInfo) => void
- ব্যবহারকারীর তথ্য
ফেরত
প্রতিশ্রুতি< প্রোফাইল ব্যবহারকারীর তথ্য >
ক্রোম ১০৬+একটি প্রমিজ রিটার্ন করে যা প্রাইমারি ক্রোম অ্যাকাউন্টের
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
- অ্যাকাউন্ট
- সাইন ইন
বুলিয়ান