Source code for auth0.authentication.passwordless

from __future__ import annotations

from typing import Any

from .base import AuthenticationBase


[docs]class Passwordless(AuthenticationBase): """Passwordless connections endpoints. Args: domain (str): Your auth0 domain (e.g: my-domain.us.auth0.com) """
[docs] def email( self, email: str, send: str = "link", auth_params: dict[str, str] | None = None ) -> Any: """Start flow sending an email. Given the user email address, it will send an email with: - A link (default, send:"link"). You can then authenticate with this user opening the link and he will be automatically logged in to the application. Optionally, you can append/override parameters to the link (like scope, redirect_uri, protocol, response_type, etc.) using auth_params dict. - A verification code (send:"code"). You can then authenticate with this user using email as username and code as password. Complete the authentication using the get_token.passwordless_login method. Args: email (str): Email address. send (str, optional): Can be: 'link' or 'code'. Defaults to 'link'. auth_params (dict, optional): Parameters to append or override. """ data: dict[str, Any] = { "client_id": self.client_id, "connection": "email", "email": email, "send": send, } if auth_params: data.update({"authParams": auth_params}) return self.authenticated_post( f"{self.protocol}://{self.domain}/passwordless/start", data=data )
[docs] def sms(self, phone_number: str) -> Any: """Start flow sending an SMS message. Given the user phone number, it will send an SMS with a verification code. You can then authenticate with this user using phone number as username and code as password. Complete the authentication using the get_token.passwordless_login method. Args: phone_number (str): Phone number. """ data = { "client_id": self.client_id, "connection": "sms", "phone_number": phone_number, } return self.authenticated_post( f"{self.protocol}://{self.domain}/passwordless/start", data=data )