![](/img/trans.png)
[英]Use POST /sign_in to sign in. GET is not supported. Omniauth-facebook
[英]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_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.
我已经尝试过的:
在这里的问题之后,我发现我已经在我的 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.