2012-03-14 5 views
0

Теперь я иду к концу моего проекта рельсов, и я сделал все, что хотел, помимо подтверждения учетной записи пользователя по электронной почте перед ее созданием. У меня уже есть это, чтобы отправить электронное письмо пользователю, но я хочу, чтобы пользователь содержал ссылку. Слишком поздно добавлять приложение, так как у меня уже есть таблица пользователей и т. Д.Добавление подтвержденного к почти полному списку рельсов

Я слышал о наличии подтвержденного поля в таблице users и его установке в false, а затем true при подтверждении пользователя, но у меня нет идея о том, как реализовать это. Есть идеи?

Если у кого-либо есть другие решения или ссылки на учебные пособия, показывающие, как добавить такую ​​функцию, это будет выдающимся. Конец так близок до сих пор.

ответ

1

Никогда не поздно добавить изобретение. Если бы я был вами, я бы сделал именно это.

Но, если бы я реализовать функциональность Подтверждение себя, это то, как я бы об этом:

  1. Для каждого пользователя, сделать хэш (как в MD5 хэш). Существует много способов: 1) для каждого пользователя создавать свои собственные и хранить в выделенном столбце таблицы; 2) сделать одно из соли паролей, идентификатор пользователя и (необязательно) некоторые статические строки; 3) что-то еще.

  2. Отправьте электронное письмо со ссылкой, в которой содержится его идентификатор и этот хеш.

  3. Когда кто-то обращается к вашему URL-адресу подтверждения, вы извлекаете идентификатор пользователя и хэш из строки запроса и сравниваете их с тем, что у вас есть. Если они совпадают, вы помечаете пользователя как подтвержденного.

+0

Приветствия Sergio, у вас есть какие-либо уроки делать это, то только предыдущий хеш-я использовал был password_hash, который я собрал из рельсов учебника, так не было никакого другого опыта ведения таких. Что касается добавления дизайна. Могу ли я просто перенести t.confirmable в файл пользователя? а затем добавить конструкцию: подтвердите модель пользователя? это просто? У меня уже есть инициализатор разработки (по умолчанию один). – user1222136

+0

Я не использовал Devise с mysql, поэтому не знаю, какие миграции необходимы. Но ничто не мешает вам попробовать. Я бы сказал, это один час работы, вершины. –

+0

Что касается вашего предложения, есть ли у вас какие-либо ссылки на учебник и т. Д., Показывающие, как реализовать такие функции? – user1222136

Смежные вопросы