Email Verification
Apiato provides an email verification feature out of the box using the Laravel's built-in email verification functionality.
Model Preparation
All you need to do to enable email verification is
to verify that your User model implements the Illuminate\Contracts\Auth\MustVerifyEmail contract.
Routing
The Email Verification Notice
If you've enabled email verification, the API will automatically send an email verification link to the user's provided email address upon user creation.
The Email Verification Handler
There are two main elements to handle the email verification process:
- Frontend URL
- Define a route in your frontend app to handle the email verification link.
- API Configuration
- Configure your frontend app's email verification URL by either creating a new App
or using the existing
App\Ship\Apps\Webapp.
- Configure your frontend app's email verification URL by either creating a new App
or using the existing
Next, read the Process Flow section to understand how this ties into the overall email verification process.
Resending The Verification Email
To resend the email verification link, use the /email/verification-notification endpoint.
Protecting Routes
Apply the verified middleware to restrict access to certain routes for confirmed users.
When email verification is enabled, unverified users trying to access protected endpoints will trigger an exception,
prompting them to confirm their email address.
Please note that if email verification is disabled,
the verified middleware won't protect routes against unconfirmed users and will have no effect.
Process Flow
Let's assume you have a frontend app with a URL like https://myapp.com/verify-email.
The email verification process flow is as follows:
- The user registers or updates their email address.
- The API sends an email verification link to the user's email address. It includes a link like this:
https://myapp.com/verify-email?verification_url=https://api.myapi.com/v1/email/verify/123/d2aG21sCc112k3. - The user clicks the link in the email.
- The link redirects the user to the specified (Frontend) URL in the email.
- The URL contains a
verification_urlquery string parameter. - The frontend app makes a
POSTrequest to theverification_urlto verify the user's email. - The API verifies the user's email and returns a
200 OKresponse.
Email Verification URL
You may instruct the API to use a different URL for email verification by using the Apiato Apps feature.