सर्वर पर एसएमएस की पुष्टि करें

फ़ोन नंबर की अपने-आप पुष्टि करने के लिए, आपको क्लाइंट और सर्वर हिस्सों का इस्तेमाल करता है. इस दस्तावेज़ में बताया गया है कि सर्वर वाला हिस्सा लागू किया जा सकता है.

फ़ोन नंबर की पुष्टि करने वाले सर्वर पर तीन काम किए जाते हैं:

  1. पुष्टि करने वाला ऐसा मैसेज बनाना जिसमें एक बार इस्तेमाल होने वाला कोड शामिल हो और जिसमें वह फ़ॉर्मैट जो क्लाइंट-साइड SMS Retriever API की ज़रूरत है
  2. उपयोगकर्ता के डिवाइस पर पुष्टि करने वाला मैसेज भेजा जा रहा है
  3. एक बार इस्तेमाल होने वाले कोड की पुष्टि करना, जब उसे सर्वर पर वापस भेजा जाता है और पुष्टि होने के बाद, बैकएंड के लिए ज़रूरी कोई भी टास्क

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

1. पुष्टि करने वाला मैसेज बनाना

जब आपके सर्वर को किसी फ़ोन नंबर की पुष्टि करने का अनुरोध मिलता है, तो सबसे पहले एक स्ट्रक्चर करें पुष्टि करने के लिए एक मैसेज भेजना है. यह मैसेज ज़रूरी है:

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

Your ExampleApp code is: 123ABC78

FA+9qCX9VSu

अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

एक बार इस्तेमाल होने वाला कोड जनरेट करना

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

एक बार इस्तेमाल होने वाले कोड लागू करने का एक तरीका यह है कि आप रैंडम नंबर जनरेट करें के रूप में दिखाई जाती है. उदाहरण के लिए, हो सकता है कि आपके कारोबार की पुष्टि बाकी हो टेबल दिखाई गई है:

आईडी उपयोगकर्ता खत्म होने की तारीख
123456789... 1234 14-3-2017 1:59

base32 कोड में बदले गए आईडी का इस्तेमाल, एक बार इस्तेमाल होने वाले कोड के तौर पर किया जा सकता है.

अपने ऐप्लिकेशन की हैश स्ट्रिंग की गिनती करना

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

  1. अगर Google Play की ऐप्लिकेशन साइनिंग का इस्तेमाल किया जाता है, तो ऐप्लिकेशन साइनिंग सर्टिफ़िकेट (deployment_cert.der) को Google Play Console का ऐप्लिकेशन साइनिंग सेक्शन.

    इसके बाद, ऐप्लिकेशन साइनिंग सर्टिफ़िकेट को किसी अस्थायी 'की स्टोर' में इंपोर्ट करें:

    keytool -importcert -file deployment_cert.der -keystore temporary.keystore -alias PlayDeploymentCert
    
    अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

    अगर आप सीधे अपने APK साइन करते हैं, तो यह चरण छोड़ दें.

  2. अपना ऐप्लिकेशन साइनिंग सर्टिफ़िकेट पाएं. इसके लिए, ऊपर दिया गया सर्टिफ़िकेट का इस्तेमाल करें या वह जिसका इस्तेमाल सीधे अपने APK पर साइन करने के लिए किया जाता है—छोटे अक्षरों वाली हेक्स स्ट्रिंग के तौर पर.

    उदाहरण के लिए, बनाए गए अस्थायी कीस्टोर से हेक्स स्ट्रिंग पाने के लिए ऊपर, निम्न आदेश लिखें:

    keytool -exportcert -keystore temporary.keystore -alias PlayDeploymentCert | xxd -p | tr -d "[:space:]"
    
    अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

    अगर आप सीधे अपने APK में साइन करते हैं, तो अपना प्रोडक्शन कीस्टोर तय करें और सर्टिफ़िकेट का दूसरा नाम.

  3. अगर आपने कोई अस्थायी कीस्टोर बनाया है, तो उसे मिटा दें.

  4. अपने ऐप्लिकेशन के पैकेज के नाम में हेक्स स्ट्रिंग जोड़ें. इन्हें अलग करने के लिए, एक से ज़्यादा दबाएं स्पेस.

  5. मिली-जुली स्ट्रिंग के SHA-256 योग का हिसाब लगाएं. किसी भी SHA-256 की गणना करने से पहले स्ट्रिंग की शुरुआत या आखिर में खाली सफ़ेद जगह योग.

  6. SHA-256 योग की बाइनरी वैल्यू को Base64-एन्कोड करें. आपको डिकोड करना पड़ सकता है सबसे पहले, SHA-256 का योग उसके आउटपुट फ़ॉर्मैट से.

  7. आपके ऐप्लिकेशन की हैश स्ट्रिंग, base64 कोड में बदले गए पहले 11 वर्ण हैं हैश.

यह निर्देश आपके ऐप्लिकेशन के प्रोडक्शन से हैश स्ट्रिंग का हिसाब लगाता है कीस्टोर:

keytool -exportcert -alias PlayDeploymentCert -keystore MyProductionKeys.keystore | xxd -p | tr -d "[:space:]" | echo -n com.example.myapp `cat` | sha256sum | tr -d "[:space:]-" | xxd -r -p | base64 | cut -c1-11
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

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

2. मैसेज (एसएमएस) के ज़रिए पुष्टि करने के लिए मैसेज भेजें

सत्यापन संदेश बनाने के बाद, उपयोगकर्ता के पते पर संदेश भेजें पर संपर्क करें.

उदाहरण के लिए, Twilio SMS का इस्तेमाल करके ऐप्लिकेशन की पुष्टि करना देखें पर जाकर देखें.

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

3. एक बार इस्तेमाल होने वाले कोड के मिलने पर, उसकी पुष्टि करें

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

  1. पुष्टि करें कि एक बार इस्तेमाल होने वाला कोड मान्य है और उसकी समयसीमा खत्म नहीं हुई है.
  2. रिकॉर्ड करें कि एक बार इस्तेमाल होने वाले कोड से लिंक किए गए उपयोगकर्ता ने फ़ोन नंबर दे दिया है पुष्टि करने के लिए.
  3. एक बार इस्तेमाल होने वाले कोड का डेटाबेस रिकॉर्ड हटाएं या किसी दूसरे तरीके से पक्का करें कि उसी कोड को दोबारा इस्तेमाल नहीं किया जा सकता.

जब उपयोगकर्ता की पुष्टि की स्थिति को रिकॉर्ड किया जाता है और इस तरह के कोड को हटाया जाता है, तो आपके डेटाबेस की पुष्टि हो गई है.