For the complete documentation index, see llms.txt. This page is also available as Markdown.

Roboflow के साथ साइन इन करें (डेवलपर संदर्भ)

Roboflow के साथ साइन इन करने के लिए OAuth संदर्भ, दृश्यता, त्रुटियाँ, और उदाहरण ऐप।

Sign in with Roboflow के लिए इंटीग्रेटर संदर्भ। ऐप पंजीकृत करने, PKCE, और प्राधिकरण प्रवाह के लिए, देखें Roboflow के साथ साइन इन करें (आरंभ करना).

उदाहरण ऐप

roboflow/siwr_example_app एक न्यूनतम Node.js ऐप है जो प्रोडक्शन OAuth को लागू करता है app.roboflow.com और api.roboflow.com. टोकन Express सत्र में रहते हैं; ब्राउज़र कभी भी क्लाइंट सीक्रेट नहीं देखता।

git clone https://github.com/roboflow/siwr_example_app.git
cd siwr_example_app
cp .env.example .env
# RF_CLIENT_ID, RF_CLIENT_SECRET, SESSION_SECRET सेट करें
npm install && npm run dev

रीडायरेक्ट URI के साथ एक OAuth ऐप पंजीकृत करें http://localhost:3001/oauth/callback और ऐप से मेल खाते अनुमत scopes (openid, profile, email, workspace:read, project:read, model:infer).

रूट
उद्देश्य

GET /

लैंडिंग या साइन-इन डैशबोर्ड

GET /oauth/start

OAuth शुरू करें (PKCE रीडायरेक्ट)

GET /oauth/callback

कोड का आदान-प्रदान करें, डैशबोर्ड दिखाएँ

POST /logout

टोकन रद्द करें और सत्र साफ़ करें

PKCE और प्राधिकरण URL

से src/oauth.ts:

export function pkcePair(): { verifier: string; challenge: string } {
    const verifier = crypto.randomBytes(48).toString("base64url");
    const challenge = crypto.createHash("sha256").update(verifier).digest("base64url");
    return { verifier, challenge };
}

export function buildAuthorizeUrl(state: string, codeChallenge: string): string {
    const url = new URL(`${config.appHost}/oauth/authorize`);
    url.searchParams.set("response_type", "code");
    url.searchParams.set("client_id", config.clientId);
    url.searchParams.set("redirect_uri", config.redirectUri);
    url.searchParams.set("scope", REQUESTED_SCOPE_STRING);
    url.searchParams.set("state", state);
    url.searchParams.set("code_challenge", codeChallenge);
    url.searchParams.set("code_challenge_method", "S256");
    return url.toString();
}

GET /oauth/start संग्रहीत करता है वेरिफ़ायर और state सत्र में, फिर इस URL पर रीडायरेक्ट करता है।

टोकन विनिमय (सर्वर-साइड)

कॉलबैक: सत्यापित करें state

से src/server.ts:

कोड का आदान-प्रदान करने से पहले हमेशा एक-बार उपयोग होने वाला OAuth सत्र डेटा साफ़ करें।

टोकन एंडपॉइंट प्रमाणीकरण

टोकन एंडपॉइंट गोपनीय क्लाइंट्स के लिए दो तरीकों का समर्थन करता है (सार्वजनिक क्लाइंट secret को छोड़ते हैं और PKCE पर निर्भर करते हैं):

विधि
यह कैसे काम करता है

client_secret_post

भेजें client_secret अनुरोध बॉडी में एक form parameter के रूप में (डिफ़ॉल्ट)

client_secret_basic

HTTP में क्रेडेंशियल भेजें Authorization: Basic हेडर (base64-एन्कोडेड client_id:client_secret)

वह विधि चुनें जो आपके क्लाइंट या गेटवे से मेल खाती हो। OAuth ऐप बनाते या संपादित करते समय इसे सेट करें Workspace Settings > Developer.

के साथ टोकन विनिमय का उदाहरण client_secret_basic:

होस्ट

सेवा
आधार URL

साइन-इन, टोकन, OIDC

https://app.roboflow.com

REST API

https://api.roboflow.com

दृश्यता

यह नियंत्रित करता है कि कौन-से वर्कस्पेस आपके OAuth ऐप से साइन इन कर सकते हैं।

डैशबोर्ड विकल्प
कौन साइन इन कर सकता है

आंतरिक

केवल उस वर्कस्पेस के सदस्य जिसने ऐप बनाया है

सूचीबद्ध नहीं

कोई भी वर्कस्पेस, यदि उनके पास आपका क्लाइंट ID हो

सार्वजनिक

असूचीबद्ध, और सक्षम होने पर Sign in with Roboflow निर्देशिका में सूचीबद्ध

कोई अलग "External" दृश्यता प्रकार नहीं है। क्रॉस-वर्कस्पेस इंटीग्रेशन उपयोग करते हैं सूचीबद्ध नहीं.

प्रत्येक ग्राहक वर्कस्पेस एक भी सेट कर सकता है बाहरी OAuth ऐप नीति (सभी को अनुमति दें, client IDs की allowlist, या सभी को ब्लॉक करें)। यदि आपके वर्कस्पेस के बाहर साइन-इन विफल होता है, तो ग्राहक से उनके वर्कस्पेस सेटिंग्स में आपका client ID अनुमति देने के लिए कहें।

साइन-इन और टोकन (app.roboflow.com)

उद्देश्य
विधि
URL
नोट्स

अधिकृत करें

GET

https://app.roboflow.com/oauth/authorize

PKCE + state आवश्यक

टोकन / रीफ़्रेश

POST

https://app.roboflow.com/oauth/token

application/x-www-form-urlencoded

रद्द करें

POST

https://app.roboflow.com/oauth/revoke

बॉडी: token=...

उपयोगकर्ता जानकारी

GET

https://app.roboflow.com/oauth/userinfo

बेयरर; आवश्यक है openid

निरीक्षण करें

POST

https://app.roboflow.com/oauth/introspect

फॉर्म token=...; client id + secret

सत्यापित करें

GET

https://app.roboflow.com/oauth/validate

बेयरर टोकन; क्लाइंट क्रेडेंशियल्स की आवश्यकता नहीं

OIDC खोज

GET

https://app.roboflow.com/.well-known/openid-configuration

JWKS

GET

https://app.roboflow.com/.well-known/jwks.json

सत्यापित करें id_token JWTs

REST API पर टोकन का उपयोग

भेजें Authorization: Bearer {access_token} पर api.roboflow.com. देखें REST API से प्रमाणीकरण करें.

सामान्य त्रुटियाँ

HTTP
अर्थ
क्या करना है

400 invalid_scope

स्कोप ऐप की अनुमत सूची में नहीं है

डैशबोर्ड में स्कोप जोड़ें या अनुरोध से हटाएँ

401 OAuthException

टोकन की अवधि समाप्त हो गई है या उसे रद्द कर दिया गया है

एक बार रीफ़्रेश करें, फिर साइन-इन के लिए फिर से संकेत दें

403 (स्कोप)

टोकन में स्कोप नहीं है

अधिक व्यापक स्कोप के साथ फिर से सहमति दें

403 (अन्य)

उपयोगकर्ता भूमिका के पास अनुमति नहीं है

वर्कस्पेस व्यवस्थापक भूमिका समायोजित करता है

रीडायरेक्ट मेल नहीं खाता

redirect_uri पंजीकरण से मेल नहीं खाता

डैशबोर्ड प्रविष्टि या अपने authorize URL को ठीक करें

सुरक्षा

  • हर authorize अनुरोध पर PKCE का उपयोग करें।

  • सत्यापित करें state हर कॉलबैक पर।

  • कभी भी उजागर न करें client_secret या refresh tokens को ब्राउज़र के सामने।

  • साइन-आउट पर टोकन रद्द करें।

  • न्यूनतम स्कोप का अनुरोध करें; पूरी सूची देखें शुरू करें.

अंतिम अपडेट

क्या यह उपयोगी था?