W poprzednich wersjach Devise użytkownik został automatycznie zalogowany po potwierdzeniu. Oznaczało to, że każdy, kto miałby dostęp do e-maila z potwierdzeniem, mógł zalogować się na czyjeś konto, po prostu klikając link.
Automatyczne podpisywanie użytkownika może również być szkodliwe w przepływie pracy potwierdzającym e-mail. Wyobraź sobie, że użytkownik decyduje się na zmianę swojego adresu e-mail, a jednocześnie robi literówkę na nowym adresie e-mail. Wiadomość e-mail zostanie wysłana na inny adres, który za pomocą tokena będzie mógł zalogować się na to konto.
Jeśli użytkownik natychmiast poprawi wiadomość e-mail, nie wyrządzi szkody. Ale jeśli nie, ktoś inny mógłby zalogować się na to konto, a użytkownik nie wiedziałby, że to się stało.
Z tego powodu Devise 3.1
nie powoduje już automatycznego podpisania użytkownika po potwierdzeniu. Można tymczasowo przynieść starego zachowania powrotem po uaktualnieniu przez ustawienie następujących w config/inicjalizatorów/devise.rb:
config.allow_insecure_sign_in_after_confirmation = true
Ta opcja będzie dostępna tylko tymczasowo w celu ułatwienia migracji.
Czy Twój link potwierdzający zawierał 'token dostępu '? –
tak, przykładowy link: http: // localhost: 3000/users/confirmation? Confirm_token = ede7fbc3203644c0ff40cf31844389d460607a7d5f13ce95bcddd25c8fce667 –