Django rest API должен убедиться, что электронная почта проверяется перед выдачей токена API
Я делаю Django REST фреймворк для JSON API, и я хочу аутентифицировать пользователей с помощью токена (таким образом, запрос API будет что-то вроде .../api/dosomething/{user} Token: ...).
Документация Django REST показывает как выставить конечную точку для генерации токена с именем пользователя/паролем - однако, я хотел бы убедиться, что электронная почта проверяется перед выдачей токена. Я не хочу отправлять сам токен на электронную почту, проверка электронной почты должна быть либо ссылкой, либо 6-значным кодом
Есть ли стандартный способ сделать это в Django?
Я думал сделать следующее - при регистрации на api/register пользователь указывает имя пользователя/электронную почту и пароль, создается аккаунт (но без токена, поэтому он не может использовать API). Чтобы получить токен, пользователь должен обратиться к конечной точке api/generate_token с именем пользователя и паролем. Это сгенерирует случайный 6-значный код в бэкенде, сохранит/обновит user/code/created_at в пользовательской модели, отправит письмо с этим кодом и вернет сообщение "please verify your email with 6 digit code".
Будет конечная точка api/verify_email_token, которая принимает имя пользователя и проверочный код. Если пара пользователь/код находится в БД и создана за последние 30 минут, она создаст и вернет токен. В противном случае произойдет сбой
Является ли это разумным решением, и реализовано ли оно уже в Django, чтобы мне не нужно было писать 6-значный код самому? Могу ли я также повторно использовать ту же модель для восстановления пароля (т.е. api/reset_password и api/verify_email_password, используя ту же таблицу модели 6-значного кода)?