Почитал форум не нашел похожих вопросов. Rails 4+ devise 3 + omniauth. Для начала попробую обойтись описанием вопроса в общем виде без кода. Было реализовано следующее: Классическая регистрация (email+password) без подтверждения на email. Потом добавлен вход (+автоматическая регистрация при первом входе) через ВК, twitter и facebook. Сейчас уже не помню точно, но присылает email только twitter, остальные две сети мыло пользователя скрывают. Я обошелся тогда тем, что впихнул в поле email что то типа email+user_id+@+provider+.ru
Получались уникальные не существующие емайлы, например email29234942@vkontakte.ru, email23450320@facebook.ru и пр.). По истечению времени понадобилось реальных адресов от пользователей. Включил confirmation на devise. Классическая регистрация работает на ура. Пользователь регистрируется - на мыло высылается письмо с токеном. Он переходит по ссылке - аккаунт подтверждается и пользователь может авторизовываться. Потом на форме настроек пользователя он может изменить почту - снова высылается письмо на новый емайл. Старый пока в базе не переписывается. Как только пользователь подтверждает новый емайл - девайс обновляет запись в базе и емайл становится другим. Теперь главная проблема. Пытаюсь зайти через соц сети - создается запись в базе с несуществующим емайл. На него шлется письмо с подтверждением, тем временем пользователь
не может зайти на мой сайт под своим аккаунтом, пока не подтвердит его. Таким образом он не может зайти и задать новый емайл - реальный и впоследствии его подтвердить.
Еще раз что мне нужно.
- Либо нужно, чтобы devise после регистрации через соцсети пускал в аккаунт без подтверждения почты - тогда я заставлю ввести реальный, который впоследствии подтвердят. Ну т.е. аккаунт не подтвержден, а войти можно.
- Либо при входе мне бы отдали соцсети емайл пользователя, который он указал при регистрации в оных (что я думаю не осуществимо).
- Либо мне нужен способ, до которого я не догадался.
Т.е. получается я думаю распространенная задача -
как с помощью девайс с включенным подтверждением емайл регить новых пользователей, приходящих из соцсетей, которые не предоставляют емайл пользователя?
Спасибо, что прочитали столько букв)