активации акаунта и смены емайла.
Есть два варианта которых мы обсуждаем.
1. Хранить токен (код для активации) в таблице юзеров. И если активирует акаунт, ставим статус что активировали емайл.
При смене емайла, опять же используем поле токен в юзер таблице а также ещё поле new_email где будет хранится новый емайл до тех пор пока не активируем его, потом нулим его.
Но с другой стороны то что линк живёт вечно (пока не активируют), ничего не сломает по безопасности, он же не получает доступ к акаунту.
Минусы этого подхода к примеру то что линк на активацию будет всегда активным (пока не активируют емайл) иначе придётся создавать ещё одно поле уже под expires_at или что то в этом роде.
2. Хранить в отдельной таблице. Структура типа: id, user_id, type, value (тут будет например емайл на который сменим), token, created_at, expired_at
Такой вариант хорош что можно делать разные активации, как смена емайла, активация акаунта и.т.п.
Вариант 2 более гибкий, но первый в какой то мере быстрее.
Кто что думаем по этому поводу ? какой вариант правильней ? Учитывая ещё момент что продукт надо выводить быстрее на продакшен.
но первый в какой то мере быстрее. Как-то непонятно почему он быстрее. И как сказали, второй вариант правильный. + надо добавить ещё поле token_type, дабы по крону грохать просроченные токены нужного типа
Там есть что то типа expires_at по этому крон может удалять потом эти данные, смысл хранить нет.
Смысла хранить много. Например это токены доступа для приложения. Мы можем захотеть однажды разлогинить юзера на других девайсах, не ломая при этом остальные доступы
Ну в данном случае идёт речь активация емайла ну и акаунта. По факту оба варианта это активация емайла. Только один на смену емайла а другой при регистрации акаунта.
делайте второй. там времени больше на полчаса, вы часть уже потратили в чате
Например для меня то что я потерял в чате, это не важно. Самое главное найти ответ. Дела по проектированию структуры это что то что за 5 минут не выучешь. Только с опытом.
да, архитектура она такая. как и русский язык.
Обсуждают сегодня