Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Email password reset does not work #50

Closed
rpatel3001 opened this issue Sep 22, 2021 · 4 comments
Closed

Email password reset does not work #50

rpatel3001 opened this issue Sep 22, 2021 · 4 comments
Labels
bug Something isn't working docker dockerfile or docker-compose setup

Comments

@rpatel3001
Copy link

Describe the bug
Trying to reset the password results in an error page. I see a 500 error on the POST to /api/password/email in my reverse proxy log and the Laravel log in the container shows a stacktrace:

[2021-09-22 20:48:43] local.ERROR: Class 'DOMDocument' not found {"exception":"[object] (Error(code: 0): Class 'DOMDocument' not found at /srv/vendor/tijsverkoyen/css-to-inline-styles/src/CssToInlineStyles.php:114)
[stacktrace]
#0 /srv/vendor/tijsverkoyen/css-to-inline-styles/src/CssToInlineStyles.php(36): TijsVerkoyen\\CssToInlineStyles\\CssToInlineStyles->createDomDocumentFromHtml()
#1 /srv/vendor/laravel/framework/src/Illuminate/Mail/Markdown.php(71): TijsVerkoyen\\CssToInlineStyles\\CssToInlineStyles->convert()
#2 /srv/vendor/laravel/framework/src/Illuminate/Notifications/Channels/MailChannel.php(101): Illuminate\\Mail\\Markdown->render()
#3 /srv/vendor/laravel/framework/src/Illuminate/Notifications/Channels/MailChannel.php(63): Illuminate\\Notifications\\Channels\\MailChannel->buildView()
#4 /srv/vendor/laravel/framework/src/Illuminate/Notifications/NotificationSender.php(148): Illuminate\\Notifications\\Channels\\MailChannel->send()
#5 /srv/vendor/laravel/framework/src/Illuminate/Notifications/NotificationSender.php(106): Illuminate\\Notifications\\NotificationSender->sendToNotifiable()
#6 /srv/vendor/laravel/framework/src/Illuminate/Support/Traits/Localizable.php(19): Illuminate\\Notifications\\NotificationSender->Illuminate\\Notifications\\{closure}()
#7 /srv/vendor/laravel/framework/src/Illuminate/Notifications/NotificationSender.php(109): Illuminate\\Notifications\\NotificationSender->withLocale()
#8 /srv/vendor/laravel/framework/src/Illuminate/Notifications/NotificationSender.php(79): Illuminate\\Notifications\\NotificationSender->sendNow()
#9 /srv/vendor/laravel/framework/src/Illuminate/Notifications/ChannelManager.php(39): Illuminate\\Notifications\\NotificationSender->send()
#10 /srv/vendor/laravel/framework/src/Illuminate/Notifications/RoutesNotifications.php(18): Illuminate\\Notifications\\ChannelManager->send()
#11 /srv/app/User.php(50): App\\User->notify()
#12 /srv/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBroker.php(66): App\\User->sendPasswordResetNotification()
#13 /srv/vendor/laravel/ui/auth-backend/SendsPasswordResetEmails.php(36): Illuminate\\Auth\\Passwords\\PasswordBroker->sendResetLink()
#14 [internal function]: App\\Http\\Controllers\\Auth\\ForgotPasswordController->sendResetLinkEmail()
#15 /srv/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): call_user_func_array()
#16 /srv/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction()
#17 /srv/vendor/laravel/framework/src/Illuminate/Routing/Route.php(239): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#18 /srv/vendor/laravel/framework/src/Illuminate/Routing/Route.php(196): Illuminate\\Routing\\Route->runController()
#19 /srv/vendor/laravel/framework/src/Illuminate/Routing/Router.php(685): Illuminate\\Routing\\Route->run()
#20 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}()
#21 /srv/app/Http/Middleware/AvoidPasswordResetInDemo.php(24): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#22 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\AvoidPasswordResetInDemo->handle()
#23 /srv/app/Http/Middleware/RedirectIfAuthenticated.php(24): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#24 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\RedirectIfAuthenticated->handle()
#25 /srv/app/Http/Middleware/LogUserLastSeen.php(26): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#26 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\LogUserLastSeen->handle()
#27 /srv/app/Http/Middleware/LogoutInactiveUser.php(26): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#28 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\LogoutInactiveUser->handle()
#29 /srv/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(41): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#30 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#31 /srv/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(59): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#32 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle()
#33 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#34 /srv/vendor/laravel/framework/src/Illuminate/Routing/Router.php(687): Illuminate\\Pipeline\\Pipeline->then()
#35 /srv/vendor/laravel/framework/src/Illuminate/Routing/Router.php(662): Illuminate\\Routing\\Router->runRouteWithinStack()
#36 /srv/vendor/laravel/framework/src/Illuminate/Routing/Router.php(628): Illuminate\\Routing\\Router->runRoute()
#37 /srv/vendor/laravel/framework/src/Illuminate/Routing/Router.php(617): Illuminate\\Routing\\Router->dispatchToRoute()
#38 /srv/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(165): Illuminate\\Routing\\Router->dispatch()
#39 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
#40 /srv/app/Http/Middleware/SetLanguage.php(20): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#41 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\SetLanguage->handle()
#42 /srv/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#43 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fideloper\\Proxy\\TrustProxies->handle()
#44 /srv/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#45 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#46 /srv/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#47 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#48 /srv/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#49 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle()
#50 /srv/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(63): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#51 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle()
#52 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#53 /srv/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(140): Illuminate\\Pipeline\\Pipeline->then()
#54 /srv/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(109): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#55 /srv/public/index.php(55): Illuminate\\Foundation\\Http\\Kernel->handle()
#56 {main}

To Reproduce
Steps to reproduce the behavior:
At the login page, click the reset password link, enter your email and click send password reset link.

Expected behavior
An email is sent to reset the password

Desktop (please complete the following information):

  • OS: Docker 20.10.8 on Ubuntu 21.04
  • Browser: Firefox 92.0
  • Version latest Docker image, published 9/9/21
@Bubka Bubka added bug Something isn't working docker dockerfile or docker-compose setup labels Sep 22, 2021
@Bubka
Copy link
Owner

Bubka commented Sep 22, 2021

Hi,

Looks like php-dom extension is missing in the Dockerfile
I will push a fix asap.

@rpatel3001
Copy link
Author

just tried this again on the latest docker image and I get the exact same stack trace (besides timestamp) in the laravel log.

@Bubka Bubka closed this as completed in 45219c3 Feb 10, 2022
@Bubka
Copy link
Owner

Bubka commented Feb 10, 2022

The PHP dom extension is no longer missing but be advised that you have to provide valid MAIL_* settings in order to get the feature to work.

As described in the Docker doc you can modify and use the docker-compose file or start 2FAuth with custom env variables, like so:

docker run --rm -d  -p 8000:8000/tcp \
MAIL_DRIVER=smtp \
MAIL_HOST=SSL0.OVH.NET \
MAIL_PORT=465 \
MAIL_USERNAME=myName@domain.org \
MAIL_PASSWORD=MyEmailProviderPwd \
MAIL_ENCRYPTION=ssl \
MAIL_FROM_NAME="MyName" \
MAIL_FROM_ADDRESS=myName@domain.org \
2fauth/2fauth:latest

@rpatel3001
Copy link
Author

Thanks! It's now working.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working docker dockerfile or docker-compose setup
Projects
None yet
Development

No branches or pull requests

2 participants