Sau khi người dùng đã đặt lại mật khẩu của mình bằng cách đặt lại mật khẩu của FOSUserBundle, theo mặc định, anh được chuyển hướng đến FOSUserProfile. Tôi muốn chuyển hướng đến một tuyến đường khác. Điều này có thể và nếu có, làm thế nào?FOSUserBundle: Mục tiêu thành công sau khi đặt lại mật khẩu
Trả lời
Nó có thể được thực hiện bằng cách tạo ra một thuê bao đặt:
namespace Acme\UserBundle\EventListener;
use FOS\UserBundle\FOSUserEvents;
use FOS\UserBundle\Event\FormEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
/**
* Listener responsible to change the redirection at the end of the password resetting
*/
class PasswordResettingListener implements EventSubscriberInterface {
private $router;
public function __construct(UrlGeneratorInterface $router) {
$this->router = $router;
}
public static function getSubscribedEvents() {
return [
FOSUserEvents::RESETTING_RESET_SUCCESS => 'onPasswordResettingSuccess',
];
}
public function onPasswordResettingSuccess(FormEvent $event) {
$url = $this->router->generate('homepage');
$event->setResponse(new RedirectResponse($url));
}
}
Và sau đó đăng ký nó như là một dịch vụ với kernel.event_subscriber
tag:
# src/Acme/UserBundle/Resources/config/services.yml
services:
acme_user.password_resetting:
class: Acme\UserBundle\EventListener\PasswordResettingListener
arguments: [ @router ]
tags:
- { name: kernel.event_subscriber }
Trong trường hợp bạn không sử dụng giao diện FOS lý lịch thành viên , có một cách xấu xí nhưng đơn giản:
Thêm vào số app/config/routing.yml
:
fos_user_profile_show:
path: /yourpath
Bạn cũng có thể khai báo tuyến đường trong bộ điều khiển của riêng bạn với tên 'fos_user_profile_show', tốt hơn url tuyệt đối. –
@LouTerrailloune không có url tuyệt đối trong cấu hình định tuyến ở trên. Nó có thể trông giống như nó nhưng nó aint –
- 1. Xác thực mật khẩu FOSUserBundle
- 2. CakePHP: Xóa trường mật khẩu khi gửi không thành công
- 3. Devise - Recoverable (Đặt lại mật khẩu)
- 4. Đặt lại mật khẩu gốc MySQL thành "mặc định" - MAMP
- 5. Đặt lại mật khẩu gốc của MySQL khi mật khẩu hiện tại không được biết
- 6. Đặt lại mật khẩu ASP.NET - vấn đề bảo mật?
- 7. ConnectionString mất mật khẩu sau khi connection.Open
- 8. Tạo mã bí mật để đặt lại mật khẩu
- 9. Đặt lại trạng thái khôi phục mật khẩu
- 10. Chủ đề email đặt lại mật khẩu Django
- 11. Đặt lại mật khẩu bằng cách gửi email mật khẩu tạm thời
- 12. .NET C# Đặt lại Mật khẩu - Ngẫu nhiên!
- 13. Mật khẩu có dấu hai chấm không thành công?
- 14. đặt lại mật khẩu gốc với cấu hình sai mysql
- 15. Cách an toàn để đặt lại mật khẩu hoặc cung cấp mật khẩu cũ
- 16. Tôi quên mật khẩu chính Glassfish3, làm cách nào tôi có thể đặt lại mật khẩu?
- 17. Cách khôi phục hoặc đặt lại mật khẩu gói SSIS?
- 18. Biểu mẫu Django + để đặt lại mật khẩu
- 19. Làm cách nào để buộc thay đổi mật khẩu bằng FOSUserBundle?
- 20. Phân bổ lại RootViewController sau khi đăng nhập thành công
- 21. Magento: Liên kết đặt lại mật khẩu không hoạt động
- 22. Tạo mẫu thư để đặt lại mật khẩu
- 23. Làm mới jQuery/Tải lại trang sau khi thành công
- 24. Chạy ứng dụng sau khi cài đặt thành công
- 25. Lệnh khởi động lại Nginx không thành công sau khi cài đặt hành khách
- 26. cài đặt lại android không thành công sau khi tắt hoạt động của trình khởi chạy
- 27. Tại sao mật khẩu lặp lại yếu?
- 28. Đặt mật khẩu sau khi tạo tài khoản với Omniauth (Rails + Devise)
- 29. Cách tạo mật khẩu ngẫu nhiên hoặc URL tạm thời để đặt lại mật khẩu trong Zend Framework?
- 30. Tại sao PDO in mật khẩu của tôi khi kết nối không thành công?
Lưu ý: Giải pháp này yêu cầu bạn sử dụng phiên bản chính cho FOS Userbundle. Bạn có thể đạt được kết quả tương tự bằng cách mở rộng bộ điều khiển đặt lại và thay đổi phương thức getRedirectionUrl(). –