PKCE দিয়ে একজন গ্রাহককে অনুমোদন দিন
S256 PKCE সহ ShareAI অথরাইজেশন-কোড ফ্লো বাস্তবায়ন করুন, স্টেট যাচাই করুন এবং আপনার অ্যাপ্লিকেশন ব্যাকএন্ডে কোড বিনিময় করুন।
এই পৃষ্ঠায়
এই ফ্লো একটি গ্রাহক অ্যাকাউন্টকে আপনার অ্যাপ্লিকেশনের সাথে সংযুক্ত করে। গ্রাহক সাইন ইন করেন, একটি ব্যক্তিগত বা সংস্থার অ্যাকাউন্ট নির্বাচন করেন এবং অনুরোধকৃত অনুমতিগুলি অনুমোদন করেন। এরপর আপনার ব্যাকএন্ড স্বল্পস্থায়ী কোডটি টোকেনের জন্য বিনিময় করে।
শুরু করার আগে#
সম্পূর্ণ অ্যাপ্লিকেশন নিবন্ধন. আপনাকে একটি সুনির্দিষ্ট নিবন্ধিত কলব্যাক, সার্ভার-হেল্ড ক্লায়েন্ট ক্রেডেনশিয়াল এবং ব্রাউজারে অথরাইজেশন সম্পন্ন করার জন্য একটি সার্ভার-সাইড সেশন প্রয়োজন।
১. অথরাইজেশন অনুরোধ তৈরি করুন#
https://auth.shareai.now/oauth/authorizeগ্রাহককে অ্যাপ্লিকেশন অথরাইজ করতে বলুন।
- বেস URL
https://auth.shareai.now- অথেন্টিকেশন
- ব্রাউজার রিডাইরেক্ট; নিবন্ধিত অ্যাপ্লিকেশন
প্রতিটি প্রচেষ্টার জন্য একটি নতুন ভেরিফায়ার, স্টেট এবং নন্স তৈরি করুন। এগুলি শুরু করা ব্যবহারকারীর সার্ভার-সাইড সেশনে সংরক্ষণ করুন। ব্রাউজার রিডাইরেক্টে SHA-256 চ্যালেঞ্জ পাঠান, কখনোই ভেরিফায়ার নয়। শুধুমাত্র আপনার অ্যাপ্লিকেশনের প্রয়োজনীয় স্কোপগুলি অনুরোধ করুন।
Python
import base64
import hashlib
import secrets
import urllib.parse
verifier = secrets.token_urlsafe(48)
challenge = base64.urlsafe_b64encode(hashlib.sha256(verifier.encode()).digest()).rstrip(b"=").decode()
state = secrets.token_urlsafe(32)
nonce = secrets.token_urlsafe(32)
# Store verifier, state and nonce in the user's server-side session.
params = {
"response_type": "code",
"client_id": "YOUR_CLIENT_ID",
"redirect_uri": "https://app.example.com/auth/shareai/callback",
"scope": "openid profile surcharge",
"state": state,
"nonce": nonce,
"code_challenge": challenge,
"code_challenge_method": "S256",
}
print("https://auth.shareai.now/oauth/authorize?" + urllib.parse.urlencode(params))
TypeScript
import { randomBytes, createHash } from "node:crypto";
const verifier = randomBytes(48).toString("base64url");
const state = randomBytes(32).toString("base64url");
const nonce = randomBytes(32).toString("base64url");
const challenge = createHash("sha256").update(verifier).digest("base64url");
// Save verifier, state and nonce in the initiating server-side session.
const params = new URLSearchParams({ response_type: "code", client_id: "YOUR_CLIENT_ID",
redirect_uri: "https://app.example.com/auth/shareai/callback",
scope: "openid profile surcharge", state, nonce,
code_challenge: challenge, code_challenge_method: "S256" });
const authorizationUrl = `https://auth.shareai.now/oauth/authorize?${params}`;
// Redirect the browser to authorizationUrl.
২. কলব্যাক যাচাই করুন#
যদি অথরাইজেশন প্রত্যাখ্যান করা হয়, OAuth ত্রুটিটি একটি সাধারণ বাতিলকরণ হিসাবে পরিচালনা করুন। অন্যথায় ফেরত দেওয়া state সংরক্ষিত মানের সাথে তুলনা করুন কোড ব্যবহার করার আগে। অনুপস্থিত বা অসামঞ্জস্যপূর্ণ স্টেট প্রত্যাখ্যান করুন। সংরক্ষিত স্টেট একবার ব্যবহার করুন; অন্য ব্রাউজার সেশনের মাধ্যমে জমা দেওয়া কলব্যাক URL গ্রহণ করবেন না।
৩. কোড বিনিময় করুন#
https://auth.shareai.now/oauth/tokenএকবার ব্যবহারযোগ্য কোড এবং মিলিত PKCE ভেরিফায়ার বিনিময় করুন।
- বেস URL
https://auth.shareai.now- অথেন্টিকেশন
- গোপনীয় ক্লায়েন্ট অথেন্টিকেশন
cURL
curl --fail-with-body "https://auth.shareai.now/oauth/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode "grant_type=authorization_code" \
--data-urlencode "client_id=$SHAREAI_CLIENT_ID" \
--data-urlencode "client_secret=$SHAREAI_CLIENT_SECRET" \
--data-urlencode "code=$AUTHORIZATION_CODE" \
--data-urlencode "redirect_uri=https://app.example.com/auth/shareai/callback" \
--data-urlencode "code_verifier=$PKCE_VERIFIER"
ক্লায়েন্টের জন্য কনফিগার করা ক্লায়েন্ট অথেন্টিকেশন পদ্ধতি ব্যবহার করুন। উদাহরণটি ফর্ম-ভিত্তিক ক্লায়েন্ট অথেন্টিকেশন ব্যবহার করে। একই কোড দুবার পাঠাবেন না; একটি ব্যবহৃত বা মেয়াদোত্তীর্ণ কোডের পরে অথরাইজেশন আবার শুরু করুন।
৪. ফলাফল সংরক্ষণ করুন এবং আপনার অ্যাপ সেশন স্থাপন করুন#
অ্যাক্সেস এবং রিফ্রেশ টোকেনগুলি আপনার ব্যাকএন্ডে সংরক্ষণ করুন। ফেরত দেওয়া expires_in ব্যবহার করুন স্থায়ী টোকেন অনুমান করার পরিবর্তে। যদি আপনি একটি ID টোকেন ব্যবহার করেন, তাহলে এর স্বাক্ষর যাচাই করুন ইস্যুকারীর JWKS, প্রত্যাশিত ইস্যুকার, ক্লায়েন্ট অডিয়েন্স, মেয়াদ এবং আপনার মূল নন্স দিয়ে দাবি বিশ্বাস করার আগে।
লাইফসাইকেল চালিয়ে যান#
রিফ্রেশ এবং রোটেশন · স্কোপ এবং অ্যাকাউন্ট পরিচয় · OAuth চ্যাট অনুরোধ
সর্বশেষ আপডেট সেপ্টেম্বর 15, 2026