अनुमति वाले टोकन पाएं

टोकन क्या होता है?

कम भरोसेमंद एनवायरमेंट से एपीआई के तरीके के कॉल के लिए, Fleet Engine को JSON वेब टोकन (JWT) का इस्तेमाल करना होगा. इन टोकन पर, किसी सही सेवा खाते से हस्ताक्षर किया जाना चाहिए. कम भरोसेमंद प्लैटफ़ॉर्म में स्मार्टफ़ोन और ब्राउज़र शामिल हैं. एक जेडब्लयूटी आपके सर्वर से जुड़ा होता है, जो पूरी तरह से भरोसेमंद एनवायरमेंट होता है. JWT पर हस्ताक्षर किया जाता है, उसे एन्क्रिप्ट किया जाता है, और उसे क्लाइंट को भेजा जाता है, ताकि वह सर्वर के साथ आगे के इंटरैक्शन के लिए इस्तेमाल किया जा सके. ऐसा तब तक किया जाता है, जब तक उसकी समयसीमा खत्म नहीं हो जाती या वह अमान्य नहीं हो जाता.

आपके बैकएंड को Fleet Engine के ख़िलाफ़ पुष्टि करने के साथ-साथ इसे इस्तेमाल करने की अनुमति देनी चाहिए ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल के स्टैंडर्ड तरीके. कंपनी या ब्रैंड ज़रूर उन JWT का इस्तेमाल किया जाएगा जिन्हें किसी सही सेवा खाते से साइन किया गया है. सेवा-खाता भूमिकाओं की सूची, Fleet Engine सेवा खाता की भूमिकाएं देखें फ़्लीट इंजन की बुनियादी बातों में बताया गया है.

इसके उलट, आपके बैकएंड को ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल के मानक तरीकों का इस्तेमाल करके, Fleet Engine के लिए पुष्टि करनी चाहिए और अनुमति देनी चाहिए.

JSON वेब टोकन के बारे में ज़्यादा जानकारी के लिए, फ़्लीट इंजन के बुनियादी दिशा-निर्देश में JSON वेब टोकन देखें.

क्लाइंट को टोकन कैसे मिलते हैं?

जब कोई ड्राइवर या उपभोक्ता, अनुमति के लिए सही क्रेडेंशियल का इस्तेमाल करके आपके ऐप्लिकेशन में लॉग इन करता है, तो उस डिवाइस से जारी किए गए किसी भी अपडेट में, अनुमति के लिए सही टोकन का इस्तेमाल करना ज़रूरी है. यह टोकन, Fleet Engine को ऐप्लिकेशन के लिए अनुमतियों की जानकारी देता है.

डेवलपर के तौर पर, आपके क्लाइंट की ओर से लागू किए जाने पर, निम्न:

  • अपने सर्वर से JSON वेब टोकन फ़ेच करें.
  • टोकन रीफ़्रेश होने की संख्या कम करने के लिए, टोकन की समयसीमा खत्म होने तक उसका फिर से इस्तेमाल करें.
  • टोकन की समयसीमा खत्म होने पर उसे रीफ़्रेश करें.

AuthTokenFactory क्लास, जगह की जानकारी के अपडेट पर ऑथराइज़ेशन टोकन जनरेट करती है समय. SDK टूल को अपडेट के साथ टोकन पैकेज करने होंगे फ़्लीट इंजन को भेजने के लिए जानकारी. पक्का करें कि आपकी सर्वर साइड SDK टूल को शुरू करने से पहले, लागू करने से टोकन जारी हो सकते हैं.

Fleet Engine सेवा के लिए ज़रूरी टोकन के बारे में जानने के लिए, Fleet Engine के लिए JSON वेब टोकन जारी करना लेख पढ़ें.

ऑथराइज़ेशन टोकन फ़ेचर का उदाहरण

यहां AuthTokenFactory को लागू करने के तरीके की जानकारी दी गई है:

class JsonAuthTokenFactory implements AuthTokenFactory {
  private String vehicleServiceToken;  // initially null
  private long expiryTimeMs = 0;
  private String vehicleId;

  // This method is called on a thread whose only responsibility is to send
  // location updates. Blocking is OK, but just know that no location updates
  // can occur until this method returns.
  @Override
  public String getToken(AuthTokenContext authTokenContext) {
    String vehicleId = requireNonNull(context.getVehicleId());

    if (System.currentTimeMillis() > expiryTimeMs || !vehicleId.equals(this.vehicleId)) {
      // The token has expired, go get a new one.
      fetchNewToken(vehicleId);
    }

    return vehicleServiceToken;
  }

  private void fetchNewToken(String vehicleId) {
    String url = "https://yourauthserver.example/token/" + vehicleId;

    try (Reader r = new InputStreamReader(new URL(url).openStream())) {
      com.google.gson.JsonObject obj
          = com.google.gson.JsonParser.parseReader(r).getAsJsonObject();
      vehicleServiceToken = obj.get("VehicleServiceToken").getAsString();
      expiryTimeMs = obj.get("TokenExpiryMs").getAsLong();

      // The expiry time could be an hour from now, but just to try and avoid
      // passing expired tokens, we subtract 10 minutes from that time.
      expiryTimeMs -= 10 * 60 * 1000;
      this.vehicleId = vehicleId;
    } catch (IOException e) {
      // It's OK to throw exceptions here. The StatusListener you passed to
      // create the DriverContext class will be notified and passed along the failed
      // update warning.
      throw new RuntimeException("Could not get auth token", e);
    }
  }
}

खास तौर पर, लागू करने की इस प्रक्रिया में, पहले से मौजूद Java एचटीटीपी क्लाइंट का इस्तेमाल करके प्राधिकरण सर्वर से JSON फ़ॉर्मैट में टोकन. क्लाइंट टोकन सेव करता है और पुराने टोकन का टोकन की समयसीमा खत्म होने का समय है.

लागू करने पर, डेटा अलग-अलग तरह से काम कर सकता है, जैसे कि बैकग्राउंड थ्रेड का इस्तेमाल करना टोकन रीफ़्रेश करने के लिए.

Fleet Engine के लिए उपलब्ध क्लाइंट लाइब्रेरी के लिए, देखें मांग पर यात्रा से जुड़ी सेवाओं के लिए क्लाइंट लाइब्रेरी.

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

Driver SDK टूल को शुरू करना