Я попробовал то, что было показано в этом (https://github.com/plataformatec/devise/wiki/How-To:-Override-confirmations-so-users-can-pick-their-own-passwords-as-part-of -confirmation-activation) вики-страница, использующая devise 3.5.2 и rails 4.2.1 в движке rails, и всегда получала «Неверный токен» при попытке подтвердить учетную запись.
Я не знаю, нужно ли обновлять вики или есть какая-то другая проблема.
Когда я заменил
<strong i="8">@confirmable</strong> = User.find_or_initialize_with_error_by(:confirmation_token, confirmation_token)
с этим:
<strong i="12">@confirmable</strong> = User.find_or_initialize_with_error_by(:confirmation_token, original_token)
Все сработало, как и ожидалось
Вики поддерживается сообществом. Поэтому, если нет актуальных инструкций, мы рекомендуем вам самостоятельно изучить решение и, надеюсь, поделиться своими выводами!
В частности, учитывая, что вы уже нашли правильное решение, было бы здорово, если бы вы могли просто обновить вики. Спасибо!
Я тоже столкнулся с этой проблемой. Исправление противоречит здравому смыслу. Это странно, потому что похоже, что вы берете необработанный незашифрованный токен из параметров и ищете пользователя по нему. Но я думал, что у пользователя хранится только зашифрованный токен.
Значит, Devise делает что-то за кулисами с этой строкой?
original_token = params[:confirmation_token]
Просто обновите вики https://github.com/plataformatec/devise/wiki/How-To:-Override-confirmations-so-users-can-pick-their-own-passwords-as-part-of-confirmation-activation /_compare/030dda7c5edaf339b7c0023139fbd3214f702cad...c6a9649499dc8f73d77d2e4705bbeb1f1b334568