25 lines
1.5 KiB
Markdown
25 lines
1.5 KiB
Markdown
|
|
# Walkthrough - Fixed Registration OTP Issue
|
||
|
|
|
||
|
|
I have fixed the issue where the OTP (token) screen was not showing after registration in the Docker environment.
|
||
|
|
|
||
|
|
## Changes Made
|
||
|
|
|
||
|
|
### Configuration Improvements
|
||
|
|
- **[config/mail.php](file:///media/itc43/Data/OTHER_PROJECT/kulakpos/kulakpos_15Maret2026_to%20GTEA/public_html/config/mail.php)**: Added `queue_mail` and `otp_visibility_time` to the configuration file. This allows these settings to be accessed reliably via the `config()` helper.
|
||
|
|
|
||
|
|
### Controller Refactoring
|
||
|
|
- **[RegisteredUserController.php](file:///media/itc43/Data/OTHER_PROJECT/kulakpos/kulakpos_15Maret2026_to%20GTEA/public_html/app/Http/Controllers/Auth/RegisteredUserController.php)**: Replaced direct `env()` calls with `config()` calls.
|
||
|
|
- `env('MAIL_USERNAME')` is now `config('mail.mailers.smtp.username')`.
|
||
|
|
- `env('QUEUE_MAIL')` is now `config('mail.queue_mail')`.
|
||
|
|
- `env('OTP_VISIBILITY_TIME')` is now `config('mail.otp_visibility_time')`.
|
||
|
|
|
||
|
|
## Rationale
|
||
|
|
In Laravel, the `env()` function should only be used in configuration files. If the configuration is cached (which is common in production or Docker deployments), `env()` calls in controllers will return `null`. This was causing the registration process to think that the mail service was not configured, leading to a `406 Not Acceptable` error instead of showing the OTP modal.
|
||
|
|
|
||
|
|
## How to Verify
|
||
|
|
1. Clear the configuration cache in your Docker container:
|
||
|
|
```bash
|
||
|
|
php artisan config:clear
|
||
|
|
```
|
||
|
|
2. Test the registration flow again. The OTP screen should now appear as expected.
|