sendEmailVerification
AppDelegate.reachfive().sendEmailVerification(authToken, redirectUrl) (1)
| 1 | redirectUrl is optional. |
Description
Initiates the email verification process by sending a verification email to the user’s registered email address. The email contains a unique verification code required to confirm the email address.
This method requires the user to be authenticated and is typically used after signup or an email update.
|
Examples
import Reach5
let profileAuthToken: AuthToken = // Here paste the authorization token of the profile retrieved after login
do {
let emailVerificationResponse = try await AppDelegate.reachfive().sendEmailVerification(
authToken: profileAuthToken,
redirectUrl: URL(string: "https://example-email-verification.com")! // optional
)
switch emailVerificationResponse {
case .Success:
// Email verification process completed successfully
case .VerificationNeeded(let continueEmailVerification):
// Verification email sent, use continueEmailVerification.verify(code: String, email: String, freshAuthToken: AuthToken? = nil) or AppDelegate.reachfive().verifyEmail to complete the flow
}
} catch {
// Return a ReachFive error
}
Parameters
| Parameter | Description | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Authorization token of the profile retrieved from login.
|
|||||||||||||
optional The URL to which the user will be redirected after clicking the verification link in the email. This URL must be whitelisted in the |
Response
-
Type: EmailVerificationResponse
-
Error: ReachFiveError
The response is an EmailVerificationResponse enum with two cases:
-
.Success: Indicates the email verification process completed without requiring further action. -
.VerificationNeeded(ContinueEmailVerification): Indicates a verification email was sent, and further action (e.g., entering a verification code) is required to complete the process.
The promise is rejected and returns a ReachFiveError if:
-
The parameters are invalid.
-
The email template is incomplete.
ReachFiveError
Based on the problem, the ReachFiveError will be:
-
AuthCanceled: Nothing happened, and nothing is expected of you — ignoring it is a valid way to handle it.
This can happen for any of the following reasons:-
The user canceled the request.
-
No passkey was saved for your app.
-
A web login was dropped because another one was already in progress. See webviewLogin.
-
The app is not associated with the host of an
WebProvider.universalLinkcallback. See guides/apple-app-site-association.adoc#webcredentials.
-
-
RequestError(apiError: ApiError)for a Bad Request (status 400) error. -
AuthFailure(reason: String, apiError: ApiError?)mainly for Unauthorized (status 401) error. -
TechnicalError(reason: String, apiError: ApiError?)if it’s an Internal Server Error (status 500) or other internal errors.
ApiError
error |
The main error message. |
||||||
errorId |
The identifier of the error. |
||||||
errorUserMsg |
The user-friendly error message.
|
||||||
errorMessageKey |
The error message key. |
||||||
errorDescription |
The technical error message. |
||||||
errorDetails FieldError[] |
|
Completing the flow
Use continueEmailVerification.verify(code: String, email: String, freshAuthToken: AuthToken? = nil) or verifyEmail to complete the verification.