How do I verify a user's phone number?

Automatisk Telefonnummerverifikation på Android

12/12/2024

Rating: 3.93 (4003 votes)

I dagens digitale verden er det afgørende at verificere brugeres identitet for at opbygge tillid, forbedre sikkerheden og forhindre svindel. Telefonnummerverifikation er en udbredt metode til dette formål, men den traditionelle proces, der kræver manuel indtastning af en kode fra en SMS, kan være besværlig for brugerne og føre til frafald. Heldigvis tilbyder Google en elegant løsning: SMS Retriever API.

How do I verify a user's phone number?
After you have obtained the user's phone number and started to listen for SMS messages, send the user's phone number to your verification server using any method (usually with an HTTPS POST request). Your server generates a verification message and sends it by SMS to the phone number you specified.

Denne artikel vil dykke ned i, hvordan du implementerer automatisk telefonnummerverifikation i din Android-app ved hjælp af Googles SMS Retriever API. Vi vil gennemgå hvert trin, fra opsætning af din app til modtagelse og behandling af verifikations-SMS'en, for at sikre en problemfri og sikker brugeroplevelse. Målet er at minimere friktionen og maksimere brugervenligheden, samtidig med at appens sikkerhed opretholdes.

Indholdsfortegnelse

Hvad er Telefonnummerverifikation og Hvorfor er det Vigtigt?

Telefonnummerverifikation er en proces, hvor man bekræfter, at en bruger er ejer af et bestemt telefonnummer. Dette gøres typisk ved at sende en unik kode, ofte kaldet en engangskode (OTP – One-Time Password), via SMS til nummeret. Brugeren skal derefter indtaste denne kode i appen for at bevise ejerskab.

Vigtigheden af denne proces kan ikke undervurderes. For det første øger det sikkerheden betydeligt. Ved at verificere telefonnumre kan apps forhindre oprettelse af falske konti, reducere spam og beskytte brugerdata. Det fungerer som et stærkt andet lag af autentificering ud over brugernavn og adgangskode. For det andet bygger det tillid. Når en bruger ved, at deres telefonnummer er verificeret og forbundet med deres konto, skaber det en følelse af sikkerhed og pålidelighed.

Traditionelt har denne proces involveret, at brugeren manuelt skulle åbne sin SMS-app, finde koden og derefter skifte tilbage til din app for at indtaste den. Dette kan være en kilde til frustration, især hvis koden er lang, eller hvis brugeren har mange SMS'er. Dette er netop her, hvor SMS Retriever API kommer ind i billedet og transformerer brugeroplevelsen.

Google SMS Retriever API: En Game-Changer for Verifikation

Google SMS Retriever API er designet til at strømline telefonnummerverifikationsprocessen ved at eliminere behovet for manuel indtastning af engangskoder. API'en lytter automatisk efter en specifik SMS-besked, der indeholder en unik app-signatur, udpakker koden og gør den tilgængelig for din app. Dette betyder, at brugeren aldrig behøver at forlade din app eller huske koden.

API'en fungerer ved at vente på en SMS-besked, der matcher et foruddefineret format og indeholder en 11-tegns hash af din apps pakkenavn og offentlige nøglecertifikat. Når en sådan besked modtages, udløser API'en en broadcast-intent, som din app kan fange. Denne proces forbedrer ikke kun brugervenligheden, men også sikkerheden, da der ikke er risiko for, at en anden app opsnapper koden.

Selvom SMS Retriever API håndterer klient-siden af verifikationen, er det vigtigt at huske, at en server-side komponent stadig er nødvendig. Din server er ansvarlig for at generere den unikke verifikationskode, inkludere din apps hash-signatur i SMS'en og sende den til brugerens telefonnummer. Når din app har modtaget koden, sendes den tilbage til din server for endelig bekræftelse.

Forberedelse af Din Android App

Før du kan begynde at implementere SMS Retriever API, skal din Android-app opfylde visse krav og konfigureres korrekt.

App-krav:

  • Din app skal have en minSdkVersion på 19 eller højere.
  • Din app skal have en compileSdkVersion på 28 eller højere.

Konfiguration af Din App:

Du skal tilføje de nødvendige Google Play Services-afhængigheder til dit projekt. Dette gøres i din apps build.gradle-fil (typisk placeret i app/build.gradle).

Først skal du sikre dig, at Google Maven-repositoriet og Maven Central-repositoriet er inkluderet i både buildscript- og allprojects-sektionerne i din projekt-niveau build.gradle-fil:

buildscript {
repositories {
google()
mavenCentral()
}
}

allprojects {
repositories {
google()
mavenCentral()
}
}

Derefter skal du tilføje de specifikke Google Play Services-afhængigheder for SMS Retriever API til din modul-niveau build.gradle-fil:

AfhængighedFormål
implementation 'com.google.android.gms:play-services-auth:21.4.0'Grundlæggende Google Play Services-autentificering.
implementation 'com.google.android.gms:play-services-auth-api-phone:18.2.0'API til telefonnummer- og SMS-relaterede funktioner, herunder SMS Retriever.

Sørg for at synkronisere dit Gradle-projekt efter at have foretaget disse ændringer for at downloade de nødvendige biblioteker.

Trin-for-Trin Implementering på Klient-Siden

Med din app forberedt er du nu klar til at implementere de klient-side trin for automatisk telefonnummerverifikation.

1. Indhent Brugerens Telefonnummer

Den første del af processen er at få brugerens telefonnummer. For den bedste brugeroplevelse anbefales det at bruge den indbyggede hint-vælger, som giver brugeren mulighed for at vælge mellem telefonnumre, der allerede er gemt på enheden. Dette eliminerer behovet for manuel indtastning, hvilket reducerer fejl og forbedrer hastigheden.

Du opretter en HintRequest og bruger Auth.CredentialsApi.getHintPickerIntent til at vise vælgeren. Når brugeren har valgt et nummer, vil resultatet blive returneret i din onActivityResult-metode, hvorfra du kan udtrække telefonnummeret.

Denne tilgang minimerer brugerens indsats og sikrer, at det indsamlede nummer er korrekt, da det hentes direkte fra enhedens lagrede legitimationsoplysninger. Det er et vigtigt skridt for at skabe en gnidningsfri oplevelse.

2. Start SMS Retriever

Når du har brugerens telefonnummer og er klar til at starte verifikationsprocessen, skal du initialisere SMS Retriever API. Dette fortæller systemet, at din app er klar til at lytte efter en specifik SMS-besked, der indeholder din verifikationskode.

Du får en instans af SmsRetrieverClient og kalder startSmsRetriever(). Det er vigtigt at tilknytte både en succes- og en fejl-listener til opgaven. Succes-listeneren vil blive udløst, når SMS Retriever er begyndt at lytte korrekt, og fejl-listeneren vil fange eventuelle problemer, der opstår under opstarten.

SMS Retriever API vil lytte i op til fem minutter efter en matchende SMS-besked. Hvis beskeden ikke modtages inden for denne tidsramme, vil opgaven timeoute, og fejl-listeneren vil blive udløst.

3. Send Telefonnummeret til Din Server

Efter at have indhentet brugerens telefonnummer og startet SMS Retriever API, skal du sende telefonnummeret til din backend-server. Dette gøres typisk via en sikker forbindelse, såsom en HTTPS POST-anmodning.

Din server vil derefter have ansvaret for at generere en unik engangskode (OTP) og konstruere en SMS-besked, der indeholder denne kode. Det afgørende er, at SMS-beskeden skal indeholde en unik 11-tegns hash-signatur af din app, som genereres på server-siden. Denne signatur er det, SMS Retriever API bruger til at identificere, at SMS'en er beregnet til netop din app. Uden denne signatur vil API'en ikke kunne fange beskeden.

Din server sender derefter denne specialformede SMS til det telefonnummer, som brugeren har angivet. Denne server-side proces er kritisk for at sikre, at den modtagne SMS kan genkendes og behandles korrekt af din Android-app.

4. Modtag Verifikations-SMS'en

Når den verifikations-SMS, din server sendte, modtages på brugerens enhed, vil Google Play Services automatisk videresende en eksplicit intent, SmsRetriever.SMS_RETRIEVED_ACTION, til din app. Denne intent indeholder selve teksten fra SMS-beskeden.

For at fange denne intent skal du implementere en BroadcastReceiver. Denne receiver vil lytte efter den specifikke SMS_RETRIEVED_ACTION. I din BroadcastReceiver's onReceive-metode kan du udtrække beskedens indhold fra intent's 'extras'. Du kan også (i nyere versioner af GMS) få afsenderadressen.

Det er vigtigt at registrere din BroadcastReceiver i din apps AndroidManifest.xml-fil med det korrekte intent-filter og den nødvendige tilladelse. Tilladelsen com.google.android.gms.auth.api.phone.permission.SEND er afgørende for, at din receiver kan opdage, at intent'en kommer fra SMS Retriever API. Bemærk, at du ikke skal tilføje denne tilladelse til din app's manifest som en <uses-permission> tag; den er kun til brug i receiver-deklarationen.

Inden for din receiver skal du håndtere forskellige statuskoder, såsom CommonStatusCodes.SUCCESS, der indikerer, at beskeden er modtaget, eller CommonStatusCodes.TIMEOUT, hvis der er gået fem minutter uden at modtage en matchende SMS.

5. Send Engangskoden (OTP) til Din Server

Efter at have modtaget SMS-beskeden i din BroadcastReceiver, er næste skridt at udtrække den faktiske engangskode (OTP) fra meddelelsesteksten. Formatet af OTP'en afhænger af, hvordan du har implementeret det på din server. Dette kan gøres ved hjælp af regulære udtryk (regex) eller anden tekstbehandlingslogik.

Når du har udpakke OTP'en, skal du sende den tilbage til din server via en sikker forbindelse (igen, typisk HTTPS POST). Din server vil derefter validere den modtagne OTP mod den kode, den tidligere genererede og sendte. Hvis koderne matcher, kan din server registrere, at telefonnummeret er verificeret, og give din app besked om succes. Dette fuldender hele verifikationsflowet og giver en fuldstændig automatisk oplevelse for brugeren.

Fordele ved Automatisk Telefonnummerverifikation

Implementering af automatisk telefonnummerverifikation med Google SMS Retriever API medfører en række betydelige fordele for både udviklere og brugere:

  • Forbedret Brugeroplevelse (UX): Den mest åbenlyse fordel er elimineringen af manuel indtastning. Brugere behøver ikke at skifte app, huske koder eller bekymre sig om tastefejl. Dette skaber en friktionsfri og behagelig oplevelse.
  • Øget Konverteringsrate: Ved at fjerne et potentielt friktionspunkt i registrerings- eller loginprocessen, er der større sandsynlighed for, at brugere fuldfører processen. Dette kan føre til højere konverteringsrater for din app.
  • Forbedret Sikkerhed: SMS Retriever API er designet til at give koden direkte til din app, hvilket reducerer risikoen for phishing eller at andre apps opsnapper koden. Den unikke hash-signatur sikrer, at kun din app kan modtage den specifikke verifikations-SMS.
  • Reduceret Supportbehov: Mindre friktion og færre fejl betyder færre supporthenvendelser relateret til verifikationsprocessen.
  • Hurtigere Verifikation: Processen er betydeligt hurtigere end manuel indtastning, hvilket sparer brugerne tid.
  • Pålidelighed: Da API'en er en del af Google Play Services, drager den fordel af Googles infrastruktur og pålidelighed.

Disse fordele gør SMS Retriever API til et uundværligt værktøj for enhver Android-app, der kræver telefonnummerverifikation.

Ofte Stillede Spørgsmål (FAQ)

Her er svar på nogle af de mest almindelige spørgsmål vedrørende telefonnummerverifikation og Google SMS Retriever API:

Hvorfor er det vigtigt at verificere telefonnumre i min app?

Verifikation af telefonnumre er afgørende for at opbygge tillid, forbedre sikkerheden og forhindre svindel. Det hjælper med at sikre, at en bruger er en ægte person med et gyldigt telefonnummer, hvilket reducerer spam, falske konti og potentielle sikkerhedsbrud. Det kan også bruges til at genoprette adgang til konti.

Hvad er Google SMS Retriever API, og hvordan adskiller det sig fra manuel indtastning?

SMS Retriever API er et værktøj fra Google, der automatisk læser en specifik verifikations-SMS og udtrækker koden for din app, uden at brugeren behøver at gøre noget. I modsætning hertil kræver manuel indtastning, at brugeren selv åbner sin SMS-app, finder koden og skriver den ind i din app, hvilket er mere besværligt og fejlbehæftet.

Hvor lang tid lytter SMS Retriever efter en besked?

Når du starter SMS Retriever API med startSmsRetriever(), vil den lytte efter en matchende SMS-besked i op til fem minutter. Hvis beskeden ikke modtages inden for denne tidsramme, vil API'en timeoute, og du skal håndtere denne fejl i din app.

Skal jeg selv skrive koden ud fra SMS'en, eller gør API'en det for mig?

SMS Retriever API leverer den fulde SMS-tekst til din app. Du er selv ansvarlig for at udtrække den specifikke engangskode (OTP) fra denne tekst ved hjælp af regulære udtryk eller anden logik, der passer til det format, din server sender koden i. API'en tager sig af at levere beskeden, ikke at parse den.

Hvad hvis SMS'en ikke modtages, eller API'en får timeout?

Hvis SMS'en ikke modtages inden for fem minutter, eller der opstår en fejl, vil din onFailureListener eller BroadcastReceiver's TIMEOUT-statuskode blive udløst. I disse tilfælde bør din app give brugeren mulighed for at anmode om en ny verifikations-SMS eller tilbyde en alternativ verifikationsmetode, hvis det er relevant.

Er server-siden også nødvendig for denne automatiske verifikation?

Ja, en server-side komponent er absolut nødvendig. Din server er ansvarlig for at generere den unikke engangskode, inkludere din apps specifikke hash-signatur i SMS-beskeden og sende den til brugerens telefonnummer. Uden serveren kan der ikke sendes en SMS, som SMS Retriever API kan genkende og behandle.

Konklusion

Automatisk telefonnummerverifikation ved hjælp af Google SMS Retriever API er en kraftfuld løsning, der dramatisk forbedrer brugeroplevelsen i din Android-app. Ved at fjerne behovet for manuel indtastning af engangskoder skaber du en mere sikker, effektiv og brugervenlig proces. Selvom det kræver en vis opsætning på både klient- og server-siden, opvejer fordelene langt indsatsen. Implementering af denne funktion vil uden tvivl bidrage til en mere professionel og moderne app, der prioriterer både sikkerhed og brugerkomfort.

Hvis du vil læse andre artikler, der ligner Automatisk Telefonnummerverifikation på Android, kan du besøge kategorien Teknologi.

Go up