Этот проект Rails имеет сторону API для отправки данных в версию приложения iOS. Он использует Devise :: Lockable для блокировки учетных записей пользователей, когда они терпят неудачу входа 3 раза.Rails: Персистские параметры по неавторизованному запросу?
Это странный кромка, но, возможно, не так уж редко: ситуация начинается с того, что уже вошел в систему на настольной версии. Если я затем проваляю логин в приложении iOS 3 раза, но затем нажмите ссылку для сброса пароля в своем письме с настольной версии, потому что я уже вошел в систему, запрос на edit_password_url становится несанкционированным (потому что учетная запись заблокирована), и я перенаправляюсь на страницу входа.
Какими-то способами я мог бы по-прежнему обращаться к edit_password_url, сохраняя параметры (в частности, токен сброса пароля)? Я имею в виду как:
- Пропустить аутентичности страницу редактирования пароля (кажется плохой, но я до сих пор не понимаю, как это сделать)
- Создать несколько серий фильтров, которые проверяют запросы затем перенаправить обратно к edit_password_url ... но как я могу сохранить этот пароль сброса токен?
- В качестве альтернативы, я мог бы как-то принудительно выгнать пользователя из основного приложения где-то в процессе входа пользователя из-под входа через API. Но это имена, которые находятся под разными контроллерами, и я не нашел способа выгнать этот путь.
Это так близко, и я думаю, что это будет работать, если я не использовал spree_auth_devise. Вы знакомы? Я хочу изменить свой контроллер паролей на то, что вы показали, но файл начинается следующим образом: 'Spree :: UserPasswordsController.class_eval do', а не' UserPasswordsController: edit', но он все еще аутентифицируется и перенаправляется. Есть идеи? –
batmanbury
Вы можете расширить 'Spree :: UserPasswordsController', но вам нужно использовать' skip_before_filter'. 'before_filter' (или лучше' before_action') не переопределяет предыдущие объявления ... Вы попробовали это? – aceofspades
Я вижу. «Пропустить» часть кажется неинтуитивной. Итак: 'skip_before_filter: require_no_authentication, только: [: edit]' фактически пропустит аутентификацию? – batmanbury