इस पेज पर, Android ऐप्लिकेशन में Firebase Phone Number Verification का इस्तेमाल करने का तरीका बताया गया है. इस सुविधा के बारे में सामान्य जानकारी पाने के लिए, खास जानकारी देखें.
इस पेज पर, यूनीफ़ाइड सिंगल-कॉल एपीआई का इस्तेमाल करके, Firebase PNV के साथ इंटिग्रेट करने का तरीका बताया गया है. एक ही तरीके से कॉल करने पर, Firebase PNV के पूरे उपयोगकर्ता फ़्लो को मैनेज किया जा सकता है. इसमें उपयोगकर्ता की सहमति लेने से लेकर, Firebase PNV के बैकएंड में ज़रूरी नेटवर्क कॉल करने तक के सभी काम शामिल हैं. इस तरीके का इस्तेमाल करके, इंटिग्रेशन के चरणों को एक ही तरीके के कॉल में कम किया जा सकता है.
ज़्यादातर डेवलपर के लिए, इस एपीआई का इस्तेमाल करने का सुझाव दिया जाता है. हालांकि, अगर आपकी कुछ खास ज़रूरतें हैं और लाइब्रेरी उन्हें पूरा नहीं करती है, तो कस्टम फ़्लो लागू करने के बारे में जानकारी पाने के लिए, Firebase Phone Number Verification फ़्लो को पसंद के मुताबिक बनाएं पेज देखें.
शुरू करने से पहले
आपको अपने ऐप्लिकेशन की निजता नीति को सार्वजनिक तौर पर उपलब्ध वेबसाइट पर पब्लिश करना होगा. इस पेज पर, आपको अपने उपयोगकर्ताओं को यह बताना होगा कि Firebase Phone Number Verification का इस्तेमाल करके हासिल किए गए फ़ोन नंबरों का इस्तेमाल कैसे किया जाता है. जब Firebase PNV लाइब्रेरी, उपयोगकर्ताओं से उनके फ़ोन नंबर को आपके ऐप्लिकेशन के साथ शेयर करने की सहमति मांगेगी, तब वह इस पेज से लिंक होगी.
1. अपना Firebase प्रोजेक्ट सेट अप करना
अगर आपने पहले से ही A/B टेस्टिंग नहीं बनाई है, तो अपने Android प्रोजेक्ट में Firebase जोड़ें.
Firebase PNV के लिए, ब्लेज़ प्लान ज़रूरी है. अगर आपने अब तक अपने प्रोजेक्ट को इस्तेमाल के हिसाब से शुल्क चुकाने वाले ब्लेज़ प्लान में अपग्रेड नहीं किया है, तो ऐसा करें.
अगर आपने अब तक Firebase कंसोल में अपने ऐप्लिकेशन का SHA-256 फ़िंगरप्रिंट नहीं बताया है, तो प्रोजेक्ट की सेटिंग में जाकर ऐसा करें. अपने ऐप्लिकेशन का SHA-256 फ़िंगरप्रिंट पाने के तरीके के बारे में जानने के लिए, अपने क्लाइंट की पुष्टि करना लेख पढ़ें.
Google Cloud Console में अपना Firebase प्रोजेक्ट खोलें और Firebase Phone Number Verification एपीआई चालू करें.
कंसोल के क्रेडेंशियल पेज पर, अपनी Android एपीआई कुंजी खोलें और चुने गए एपीआई की सूची में Firebase Phone Number Verification एपीआई जोड़ें.
2. अपने ऐप्लिकेशन में Firebase PNV लाइब्रेरी जोड़ना
अपनी मॉड्यूल (ऐप्लिकेशन-लेवल) की Gradle फ़ाइल (आम तौर पर <project>/<app-module>/build.gradle.kts
या <project>/<app-module>/build.gradle
) में, Android के लिए Firebase Phone Number Verification लाइब्रेरी की डिपेंडेंसी जोड़ें.
dependencies {
// Add the dependency for the Firebase Phone Number Verification library
implementation("com.google.firebase:firebase-pnv:16.0.0-beta01")
}
3. ज़रूरी नहीं: देखें कि Firebase PNV के साथ काम करता है या नहीं
पुष्टि करने की प्रोसेस शुरू करने से पहले, यह देखा जा सकता है कि डिवाइस और उसका सिम कार्ड, एपीआई पर आधारित फ़ोन नंबर की पुष्टि करने की सुविधा के साथ काम करता है या नहीं. यह एक प्री-चेक है. इसके लिए, उपयोगकर्ता की सहमति की ज़रूरत नहीं होती. इस टेस्ट के नतीजे का इस्तेमाल करके, यह तय किया जा सकता है कि Firebase PNV फ़्लो शुरू करना है या फ़ोन नंबर की पुष्टि करने के लिए कोई दूसरा तरीका इस्तेमाल करना है. जैसे, एसएमएस.
यह देखने के लिए कि डिवाइस पर यह सुविधा काम करती है या नहीं, getVerificationSupportInfo()
तरीके को कॉल करें:
Kotlin
import com.google.firebase.pnv.FirebasePhoneNumberVerification
// Get an instance of the SDK.
val fpnv = FirebasePhoneNumberVerification.getInstance()
// Check all SIMs for support.
fpnv.getVerificationSupportInfo()
.addOnSuccessListener { results ->
if (results.any { it.isSupported() }) {
// At least one SIM is supported; proceed with FPNV flow
} else {
// No SIMs are supported, so fall back to SMS verification.
}
}
.addOnFailureListener { e ->
// Handle error.
}
getVerificationSupportInfo()
, VerificationSupportResult
ऑब्जेक्ट की एक सूची दिखाता है. हर सिम स्लॉट के लिए एक ऑब्जेक्ट होता है. अगर कम से कम एक सिम कार्ड काम करता है, तो Firebase PNV फ़्लो का इस्तेमाल किया जा सकता है.
4. पुष्टि करने की प्रोसेस शुरू करना
Firebase PNV फ़्लो शुरू करने के लिए, FirebasePhoneNumberVerification
का नया इंस्टेंस बनाएं. इसके लिए, Activity
कॉन्टेक्स्ट पास करें. एसडीके को उपयोगकर्ता के सामने सहमति वाली स्क्रीन दिखाने के लिए, Activity
कॉन्टेक्स्ट की ज़रूरत होती है. इसके बाद, ऑब्जेक्ट के getVerifiedPhoneNumber()
तरीके को कॉल करें:
Kotlin
// Get an instance of the SDK _with an Activity context_:
val fpnv = FirebasePhoneNumberVerification.getInstance(this@MainActivity)
// Call getVerifiedPhoneNumber
fpnv.getVerifiedPhoneNumber("https://example.com/privacy-policy")
.addOnSuccessListener { result ->
val phoneNumber = result.getPhoneNumber()
val token = result.getToken()
// Verification successful. Send token to your backend.
}
.addOnFailureListener { e ->
// Handle failures, such as the user declining consent or a network error.
}
getVerifiedPhoneNumber()
तरीके से, फ़ोन नंबर की पुष्टि करने की पूरी प्रोसेस को पूरा किया जाता है. इसमें ये शामिल हैं:
- Android क्रेडेंशियल मैनेजर का इस्तेमाल करके, उपयोगकर्ता से उसका फ़ोन नंबर शेयर करने की सहमति लेना.
- Firebase PNV के बैकएंड को अनुरोध भेजा जा रहा है.
- डिवाइस के लिए, पुष्टि किया गया फ़ोन नंबर वापस लाना.
5. Firebase PNV टोकन का इस्तेमाल करना
अगर पुष्टि करने की प्रोसेस पूरी हो जाती है, तो getVerifiedPhoneNumber()
तरीके से पुष्टि किया गया फ़ोन नंबर और उस नंबर वाला हस्ताक्षर किया गया टोकन मिलता है. इस डेटा का इस्तेमाल अपने ऐप्लिकेशन में किया जा सकता है. हालांकि, इसके लिए आपको अपनी निजता नीति में इसकी जानकारी देनी होगी.
अगर आपको पुष्टि किए गए फ़ोन नंबर का इस्तेमाल ऐप्लिकेशन क्लाइंट के बाहर करना है, तो आपको फ़ोन नंबर के बजाय टोकन पास करना चाहिए. इससे, इस्तेमाल करते समय इसकी पुष्टि की जा सकेगी. टोकन की पुष्टि करने के लिए, किसी भी JWT पुष्टि करने वाली लाइब्रेरी का इस्तेमाल किया जा सकता है. लाइब्रेरी का इस्तेमाल करके, इन सभी की पुष्टि करें:
टोकन पर, Firebase PNV JWKS एंडपॉइंट पर पब्लिश की गई किसी एक कुंजी का इस्तेमाल करके हस्ताक्षर किया जाता है:
https://fpnv.googleapis.com/v1beta/jwks
ऑडियंस और जारी करने वाले के दावों में, आपका Firebase प्रोजेक्ट नंबर शामिल होता है. साथ ही, यह इस फ़ॉर्मैट में होता है:
https://fpnv.googleapis.com/projects/FIREBASE_PROJECT_NUMBER
आपको Firebase प्रोजेक्ट का नंबर, Firebase कंसोल के प्रोजेक्ट सेटिंग पेज पर मिल सकता है.
टोकन की समयसीमा खत्म नहीं हुई है.
उदाहरण
उदाहरण के लिए, यहां दिया गया Express.js ऐप्लिकेशन, एचटीटीपी POST
अनुरोध से Firebase PNV टोकन पाता है. साथ ही, JWT की पुष्टि करने वाली लाइब्रेरी का इस्तेमाल करके, टोकन के हस्ताक्षर और दावों की जांच करता है:
Node.js
import express from "express";
import { JwtVerifier } from "aws-jwt-verify";
// Find your Firebase project number in the Firebase console.
const FIREBASE_PROJECT_NUMBER = "123456789";
// The issuer and audience claims of the FPNV token are specific to your
// project.
const issuer = `https://fpnv.googleapis.com/projects/${FIREBASE_PROJECT_NUMBER}`;
const audience = `https://fpnv.googleapis.com/projects/${FIREBASE_PROJECT_NUMBER}`;
// The JWKS URL contains the current public signing keys for FPNV tokens.
const jwksUri = "https://fpnv.googleapis.com/v1beta/jwks";
// Configure a JWT verifier to check the following:
// - The token is signed by Google
// - The issuer and audience claims match your project
// - The token has not yet expired (default behavior)
const fpnvVerifier = JwtVerifier.create({ issuer, audience, jwksUri });
const app = express();
app.post('/verifiedPhoneNumber', async (req, res) => {
if (!req.body) return res.sendStatus(400);
// Get the token from the body of the request.
const fpnvToken = req.body;
try {
// Attempt to verify the token using the verifier configured above.
const verifiedPayload = await fpnvVerifier.verify(fpnvToken);
// If verification succeeds, the subject claim of the token contains the
// verified phone number. You can use this value however it's needed by
// your app.
const verifiedPhoneNumber = verifiedPayload.sub;
// (Do something with it...)
return res.sendStatus(200);
} catch {
// If verification fails, reject the token.
return res.sendStatus(400);
}
});
app.listen(3000);
किसी Firebase ऐप्लिकेशन में साइन इन करना
Firebase Authentication साइन-इन फ़्लो में Firebase PNV टोकन इस्तेमाल करने का उदाहरण देखने के लिए, Firebase Phone Number Verification का इस्तेमाल करके Firebase से पुष्टि करें पेज पर जाएं.