繁体   English   中英

devise_token_auth forget password API 显示 Use POST /sign_in to sign in. GET is not supported 错误

[英]devise_token_auth forget password API shows Use POST /sign_in to sign in. GET is not supported error

遵循此解决方案https://stackoverflow.com/a/47761138/7818637我正在使用devise_token_auth gem 进行身份验证的轨道上设计忘记密码流 API。

1. POST 调用发送密码重置 Email

URL: http://localhost:3000/client/auth/password

表单数据: {email: 'john@gmail.com', redirect_url: 'http://localhost:3000/client/auth/sign_in'}

拨打电话以发送密码重置电子邮件

2. 验证密码重置令牌的 GET 调用(在电子邮件中单击)

我在控制台上收到以下 URL 包含redirect_urlreset_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.

调用以验证密码重置令牌

我已经尝试过的:

这里的问题之后,我发现我已经在我的 controller 中使用了include DeviseTokenAuth::Concerns::SetUserByToken SetUserByToken。

控制台日志:

控制台日志

当用户单击 email 中的 url 时,您会将他们重定向到/password/edit路径。 在此操作中,您验证用户。 如果一切顺利,用户将被重定向到redirect_url ,这是您的情况下的登录路径。

您应该更改 email 中的redirect_url并创建将重定向用户的操作和视图。 在这个新视图中,您将拥有字段,以便用户可以重置密码。 确保新的 url 将使用“GET”。 在提交表单时将用户重定向到登录路径,以便他/她可以使用新密码登录。

请阅读https://devise-token-auth.gitbook.io/devise-token-auth/usage/reset_password了解更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM