devise_token_auth API забыл пароль показывает Используйте POST /sign_in для входа. Ошибка GET не поддерживается

Следуя этому решению https://stackoverflow.com/a/47761138/7818637, я разрабатываю API потока забытых паролей на рельсах, где Я использую devise_token_auth gem для аутентификации.

<сильный>1. Вызов POST для отправки сообщения электронной почты для сброса пароля

URL-адрес: http://localhost:3000/client/auth/password

данные формы: {email: '[email protected]', redirect_url: 'http://localhost:3000/client/auth/sign_in'}

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

<сильный>2. Вызов GET для проверки токена сброса пароля (нажатие в сообщении электронной почты)

Я получаю следующий URL-адрес на своей консоли, содержащий redirect_url и reset_password_token:

http://localhost:3000/client/auth/password/edit?config=default&redirect_url=http%3A%2F%2Flocalhost%3A3000%2Fclient%2Fauth%2Fsign_in&reset_password_token=ZBsx64Gk1VBraM3THZTn

Когда я звоню по этому URL-адресу, я получаю следующую ошибку:

Use POST /sign_in to sign in. GET is not supported.

позвонить для проверки токена сброса пароля

Что я уже пробовал:

После проблемы здесь я обнаружил, что уже использую include DeviseTokenAuth::Concerns::SetUserByToken в своем контроллере.

Журналы консоли:

журналы консоли


person Uzair Nadeem    schedule 15.05.2020    source источник


Ответы (1)


Когда пользователи щелкают URL-адрес в вашем письме, вы перенаправляете их на путь /password/edit. В этом действии вы проверяете пользователя. Если все пойдет правильно, пользователь будет перенаправлен на redirect_url, который в вашем случае является путем sign_in.

Вы должны изменить redirect_url в своем письме и создать действие и представление, в которые будет перенаправлен пользователь. В этом новом представлении у вас будут поля, чтобы пользователь мог сбросить пароль. Убедитесь, что новый URL-адрес будет использовать «GET». При отправке формы перенаправьте пользователя на путь sign_in, чтобы он / она мог войти в систему со своим новым паролем.

Пожалуйста, прочтите https://devise-token-auth.gitbook.io/devise-token-auth/usage/reset_password для получения дополнительной информации.

person Serafeim Davranis    schedule 25.05.2020