2013-05-28 13 views
6

Tôi đang khôi phục một trang web đã ngừng hoạt động trong vài năm và tôi đang di chuyển mọi thứ sang Symfony2. Tôi đã có thể nhận được tất cả các mục cơ sở dữ liệu người dùng cũ của tôi vào bảng fos_user. Vấn đề duy nhất là các mục nhập salt và confirmation_token trống vì người dùng không được tạo theo cách tiêu chuẩn. Tôi muốn tất cả người dùng đặt lại mật khẩu của họ, vì vậy tôi không lo lắng về mật khẩu băm cũ. Làm thế nào tôi có thể tạo các mục nhập cho 13.000 người dùng cùng một lúc? Có lẽ tôi cần phải ghi đè lên bộ điều khiển để tạo ra muối và confirmation_token mỗi lần một mật khẩu được yêu cầu? Do phương pháp đã tồn tại cho điều này? Có vẻ như ai đó đã có vấn đề này trước đây.Làm cách nào để tạo các mục nhập muối và confirmation_token cho người dùng đã di chuyển với FOSUserBundle

Cảm ơn

Trả lời

9

Tôi đã giải quyết vấn đề này bằng cách ghi đè trình điều khiển Đặt lại fosUserBundle. Instructions can be found here.

tôi buộc phải tạo ra một Toke mới với những dòng này:

$tokenGenerator = $this->container->get('fos_user.util.token_generator'); 
$user->setConfirmationToken($tokenGenerator->generateToken()); 

tôi đã có thể tạo ra các giá trị muối với một truy vấn SQL đơn giản.

UPDATE fos_user set salt = SUBSTRING(MD5(RAND()) FROM 1 FOR 31) WHERE salt IS NULL 
+1

Liên kết của bạn đã chết. Bạn có thể cập nhật nó không? Cảm ơn! :) – Alec

+0

Hướng dẫn hiện có tại đây: http://symfony.com/doc/current/bundles/FOSUserBundle/overriding_controllers.html – rooter

Các vấn đề liên quan