Lock.Android : Sans mot de passe

Lock Passwordless authentifie les utilisateurs en leur envoyant un courriel ou un SMS contenant un mot de passe à usage unique que l’utilisateur doit entrer et confirmer pour pouvoir se connecter, de manière similaire à l’authentification de WhatsApp. Cet article expliquera comment envoyer un CODE en utilisant la bibliothèque Lock.Android .

Vous pouvez obtenir un résultat similaire en envoyant un lien sur lequel l’utilisateur peut cliquer pour terminer automatiquement l’authentification sans mot de passe, mais cela nécessite quelques étapes de configuration supplémentaires.

Pour pouvoir authentifier l’utilisateur, votre application doit avoir la connexion Courriel/SMS activée et configurée dans votre Auth0 Dashboard.

Mise en œuvre du code sans mot de passe

Configuration de la trousse SDK

Dans votre fichier app/build.gradle ajoutez les paramètres fictifs Manifest pour les propriétés Auth0 Domain et Auth0 Scheme, qui vont être utilisés en interne par la bibliothèque pour enregistrer un « filtre d’intention » qui capture le résultat de l’authentification.

plugins {
    id "com.android.application"
    id "kotlin-android"
}

android {
    compileSdkVersion 30
    defaultConfig {
        applicationId "com.auth0.samples"
        minSdkVersion 21
        targetSdkVersion 30
        // ...

        // ---> Add the next line
        manifestPlaceholders = [auth0Domain: "@string/com_auth0_domain", auth0Scheme: "https"]
        // <---
    }
}

Was this helpful?

/

Une bonne pratique consiste à ajouter ces valeurs au fichier strings.xml en tant que ressources de type chaîne qui peuvent être référencées ultérieurement dans le code.

<resources>
    <string name="com_auth0_client_id">{yourClientId}</string>
    <string name="com_auth0_domain">{yourDomain}</string>
</resources>

Was this helpful?

/

Utilisation de la trousse SDK

Dans l’activité où vous prévoyez invoquer Lock, créez une instance Auth0 avec les informations de votre application. La façon la plus simple de la créer est de passer un Contexte Android. Celui-ci utilisera les valeurs définies précédemment dans le fichier strings.xml . Pour que cela fonctionne, les ressources doivent être définies sous forme de chaînes en utilisant les mêmes clés que celles indiquées ci-dessus.

val account = Auth0(context)

Was this helpful?

/

Déclarez une mise en œuvre AuthenticationCallback qui traitera les événements d’authentification des utilisateurs. L’objet Credentials renvoyé dans les scénarios d’authentification réussis contiendra les jetons que votre application ou l’API consommera. Consultez Jetons pour plus de détails.

private val callback = object : AuthenticationCallback() {
    override fun onAuthentication(credentials: Credentials) {
        // Authenticated
    }

    override fun onError(error: AuthenticationException) {
        // Exception occurred
    }
}

Was this helpful?

/

Préparez une nouvelle instance de Lock en utilisant la classe Builder pour la configurer. Fournissez les détails du compte et la mise en œuvre du rappel déclaré ci-dessus. Des valeurs telles que l'audience, la permission et les connexions disponibles, entre autres, peuvent être configurées ici. Une fois que vous avez terminé, créez l’instance Lock. Cette instance, que nous pouvons réutiliser, doit disparaître lorsqu’elle n’est plus nécessaire. Une bonne façon de le faire consiste à utiliser la méthode onDestroy de votre activité.

L’exemple ci-dessous fait appel à la méthode useCode() pour faire en sorte que Lock envoie un CODE à l’adresse courriel ou au numéro de téléphone de l’utilisateur.

// This activity will show Passwordless Lock
class MyActivity : AppCompatActivity() {

    private lateinit var lock: PasswordlessLock

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        val account = Auth0(this)
        // Instantiate Lock once
        lock = PasswordlessLock.newBuilder(account, callback)
            .useCode()
            // Customize Lock
            .build(this)
    }

    override fun onDestroy() {
        super.onDestroy()
        // Important! Release Lock and its resources
        lock.onDestroy(this)
    }

    private val callback = object : AuthenticationCallback() {
        override fun onAuthentication(credentials: Credentials) {
            // Authenticated
        }

        override fun onError(error: AuthenticationException) {
            // An exception occurred
        }
    }
}

Was this helpful?

/

Enfin, lancez le gadget logiciel PasswordlessLock à partir de votre activité.

startActivity(lock.newIntent(this))

Was this helpful?

/

Selon les connexions sans mot de passe activées, Lock enverra le CODE par courriel ou par SMS. La connexion ’email’ est sélectionnée en premier lieu si elle est disponible. Ensuite, l’utilisateur doit saisir le CODE lors de l’étape de confirmation. Si la valeur correspond à celle que le serveur attend, l’authentification réussira.