Trong các phiên bản Devise trước đó, người dùng được tự động đăng nhập sau khi xác nhận. Điều này có nghĩa là bất kỳ ai có thể truy cập email xác nhận đều có thể đăng nhập vào tài khoản của ai đó bằng cách nhấp vào liên kết.
Tự động đăng nhập người dùng cũng có thể có hại trong quy trình xác nhận lại email. Hãy tưởng tượng rằng một người dùng quyết định thay đổi địa chỉ e-mail của mình và, trong khi làm như vậy, anh ta đánh máy vào địa chỉ e-mail mới. Một e-mail sẽ được gửi đến một địa chỉ khác, với mã thông báo trong tay, sẽ có thể đăng nhập vào tài khoản đó.
Nếu người dùng sửa ngay e-mail, sẽ không có tác hại nào được thực hiện. Nhưng nếu không, ai đó có thể đăng nhập vào tài khoản đó và người dùng sẽ không biết rằng nó đã xảy ra.
Vì lý do này, Devise 3.1
không còn tự động đăng nhập người dùng sau khi xác nhận. Bạn có thể tạm thời mang lại các hành vi cũ trở lại sau khi nâng cấp bằng cách thiết lập sau trong cấu hình của bạn/initializers/devise.rb:
config.allow_insecure_sign_in_after_confirmation = true
Tùy chọn này sẽ có mặt chỉ tạm thời để hỗ trợ di dân.
Nguồn
2013-09-06 10:42:43
liên kết xác nhận của bạn có chứa bất kỳ 'mã thông báo truy cập' nào không? –
có, liên kết ví dụ: http: // localhost: 3000/người dùng/xác nhận? Confirmation_token = ede7fbc3203644c0ff40cf31844389d460607a09d5f13ce95bcddd25c8fce667 –