Ephemeral tokens

वेब सॉकेट के ज़रिए Gemini API को ऐक्सेस करने के लिए, कुछ समय के लिए मान्य टोकन इस्तेमाल किए जाते हैं. ये टोकन, पुष्टि करने के लिए इस्तेमाल किए जाते हैं. इन्हें इस तरह डिज़ाइन किया गया है कि जब उपयोगकर्ता के डिवाइस से सीधे एपीआई (a क्लाइंट-टू-सर्वर के तौर पर लागू करने की प्रोसेस) से कनेक्ट किया जाता है, तो सुरक्षा बढ़ाई जा सके. एपीआई की सामान्य कुंजियों की तरह, कुछ समय के लिए मान्य टोकन को क्लाइंट-साइड ऐप्लिकेशन से निकाला जा सकता है. जैसे, वेब ब्राउज़र या मोबाइल ऐप्लिकेशन. हालांकि, कुछ समय के लिए मान्य टोकन की समयसीमा तेज़ी से खत्म हो जाती है और इन पर पाबंदियां लगाई जा सकती हैं. इसलिए, प्रोडक्शन एनवायरमेंट में सुरक्षा से जुड़े जोखिम काफ़ी कम हो जाते हैं. एपीआई की कुंजी की सुरक्षा बढ़ाने के लिए, क्लाइंट-साइड ऐप्लिकेशन से सीधे Live API को ऐक्सेस करते समय, इन टोकन का इस्तेमाल करना चाहिए.

कुछ समय के लिए मान्य टोकन कैसे काम करते हैं

कुछ समय के लिए मान्य टोकन, इस तरह काम करते हैं:

  1. आपका क्लाइंट (जैसे, वेब ऐप्लिकेशन) आपके बैकएंड से पुष्टि करता है.
  2. आपका बैकएंड, Gemini API की प्रोविज़निंग सेवा से कुछ समय के लिए मान्य टोकन का अनुरोध करता है.
  3. Gemini API, कुछ समय के लिए मान्य टोकन जारी करता है.
  4. आपका बैकएंड, Live API से वेब सॉकेट कनेक्शन के लिए, टोकन को क्लाइंट को भेजता है. इसके लिए, एपीआई की कुंजी को कुछ समय के लिए मान्य टोकन से बदला जा सकता है.
  5. इसके बाद, क्लाइंट टोकन का इस्तेमाल, एपीआई की कुंजी की तरह करता है.

कुछ समय के लिए इस्तेमाल किए जाने वाले टोकन के बारे में खास जानकारी

इससे सुरक्षा बढ़ती है, क्योंकि टोकन को निकालने पर भी, उसकी समयसीमा कम होती है. वहीं, क्लाइंट-साइड पर डिप्लॉय की गई एपीआई की कुंजी की समयसीमा ज़्यादा होती है. क्लाइंट, Gemini को सीधे डेटा भेजता है. इसलिए, इससे लेटेंसी भी कम होती है. साथ ही, आपके बैकएंड को रीयल टाइम डेटा को प्रॉक्सी करने की ज़रूरत नहीं पड़ती.

कुछ समय के लिए मान्य टोकन बनाना

Gemini से कुछ समय के लिए मान्य टोकन पाने का एक आसान उदाहरण यहां दिया गया है. डिफ़ॉल्ट रूप से, इस अनुरोध (newSessionExpireTime) से मिले टोकन का इस्तेमाल करके, Live API के नए सेशन शुरू करने के लिए आपके पास एक मिनट होगा. साथ ही, उस कनेक्शन पर मैसेज भेजने के लिए, आपके पास 30 मिनट (expireTime) होंगे.

Python

import datetime

now = datetime.datetime.now(tz=datetime.timezone.utc)

client = genai.Client(
    http_options={'api_version': 'v1alpha',}
)

token = client.auth_tokens.create(
    config = {
    'uses': 1, # The ephemeral token can only be used to start a single session
    'expire_time': now + datetime.timedelta(minutes=30), # Default is 30 minutes in the future
    # 'expire_time': '2025-05-17T00:00:00Z',   # Accepts isoformat.
    'new_session_expire_time': now + datetime.timedelta(minutes=1), # Default 1 minute in the future
    'http_options': {'api_version': 'v1alpha'},
  }
)

# You'll need to pass the value under token.name back to your client to use it

JavaScript

import { GoogleGenAI } from "@google/genai";

const client = new GoogleGenAI({});
const expireTime = new Date(Date.now() + 30 * 60 * 1000).toISOString();

  const token: AuthToken = await client.authTokens.create({
    config: {
      uses: 1, // The default
      expireTime: expireTime, // Default is 30 mins
      newSessionExpireTime: new Date(Date.now() + (1 * 60 * 1000)), // Default 1 minute in the future
      httpOptions: {apiVersion: 'v1alpha'},
    },
  });

expireTime की वैल्यू की सीमाओं, डिफ़ॉल्ट वैल्यू, और अन्य फ़ील्ड की खास जानकारी के लिए, एपीआई के बारे में जानकारी देखें. expireTime की समयसीमा के अंदर, आपको sessionResumption हर 10 मिनट में कॉल को फिर से कनेक्ट करने के लिए की ज़रूरत होगी. ऐसा उसी टोकन से किया जा सकता है, भले ही uses: 1 हो.

कुछ समय के लिए मान्य टोकन को कॉन्फ़िगरेशन के सेट के लिए लॉक भी किया जा सकता है. यह आपके ऐप्लिकेशन की सुरक्षा को बेहतर बनाने और सर्वर साइड पर अपने सिस्टम के निर्देशों को बनाए रखने में मददगार हो सकता है.

Python

client = genai.Client(
    http_options={'api_version': 'v1alpha',}
)

token = client.auth_tokens.create(
    config = {
    'uses': 1,
    'live_connect_constraints': {
        'model': 'gemini-3.1-flash-live-preview',
        'config': {
            'session_resumption':{},
            'temperature':0.7,
            'response_modalities':['AUDIO']
        }
    },
    'http_options': {'api_version': 'v1alpha'},
    }
)

# You'll need to pass the value under token.name back to your client to use it

JavaScript

import { GoogleGenAI } from "@google/genai";

const client = new GoogleGenAI({});
const expireTime = new Date(Date.now() + 30 * 60 * 1000).toISOString();

const token = await client.authTokens.create({
    config: {
        uses: 1, // The default
        expireTime: expireTime,
        liveConnectConstraints: {
            model: 'gemini-3.1-flash-live-preview',
            config: {
                sessionResumption: {},
                temperature: 0.7,
                responseModalities: ['AUDIO']
            }
        },
        httpOptions: {
            apiVersion: 'v1alpha'
        }
    }
});

// You'll need to pass the value under token.name back to your client to use it

फ़ील्ड के सबसेट को भी लॉक किया जा सकता है. ज़्यादा जानकारी के लिए, SDK टूल का दस्तावेज़ देखें.

कुछ समय के लिए मान्य टोकन का इस्तेमाल करके, Live API से कनेक्ट करना

कुछ समय के लिए मान्य टोकन मिलने के बाद, इसका इस्तेमाल एपीआई की कुंजी की तरह किया जाता है. हालांकि, ध्यान रखें कि यह सिर्फ़ Live API के लिए काम करता है. साथ ही, यह सिर्फ़ एपीआई के v1alpha वर्शन के साथ काम करता है.

कुछ समय के लिए मान्य टोकन का इस्तेमाल, सिर्फ़ उन ऐप्लिकेशन को डिप्लॉय करने पर किया जाता है जो क्लाइंट-टू-सर्वर के तौर पर लागू करने के तरीके का पालन करते हैं.

JavaScript

import { GoogleGenAI, Modality } from '@google/genai';

// Use the token generated in the "Create an ephemeral token" section here
const ai = new GoogleGenAI({
  apiKey: token.name
});
const model = 'gemini-3.1-flash-live-preview';
const config = { responseModalities: [Modality.AUDIO] };

async function main() {

  const session = await ai.live.connect({
    model: model,
    config: config,
    callbacks: { ... },
  });

  // Send content...

  session.close();
}

main();

ज़्यादा उदाहरणों के लिए, Live API का इस्तेमाल शुरू करना लेख पढ़ें.

सबसे सही तरीके

  • expire_time पैरामीटर का इस्तेमाल करके, समयसीमा की अवधि कम सेट करें.
  • टोकन की समयसीमा खत्म हो जाती है. इसलिए, प्रोविज़निंग की प्रोसेस को फिर से शुरू करना ज़रूरी है.
  • अपने बैकएंड के लिए, सुरक्षित पुष्टि की सुविधा की पुष्टि करें. कुछ समय के लिए मान्य टोकन, सिर्फ़ आपके बैकएंड की पुष्टि करने के तरीके जितने सुरक्षित होंगे.
  • आम तौर पर, बैकएंड-टू-Gemini कनेक्शन के लिए, कुछ समय के लिए मान्य टोकन का इस्तेमाल न करें. ऐसा इसलिए, क्योंकि इस पाथ को आम तौर पर सुरक्षित माना जाता है.

सीमाएं

फ़िलहाल, कुछ समय के लिए मान्य टोकन सिर्फ़ Live API के साथ काम करते हैं.

आगे क्या करना है

  • ज़्यादा जानकारी के लिए, कुछ समय के लिए मान्य टोकन के बारे में Live API के रेफ़रंस पढ़ें.