在我正在构建的网络应用程序中,有两种方法可以重置密码:从登录页面(用户尚未登录)和通过设置页面。
我正在使用 Laravel Fortify 重置密码,根据您只需发送 POST 请求的文档,/forgot-password
将生成并直接发送电子邮件。
当我从重置密码视图(带有 POST 表单的经典刀片)执行此操作时,它工作正常并且我收到了电子邮件。
但是,当我尝试通过设置页面(这是一个 vue 组件)通过带有 email 参数的 Axios 向相同的 url 发送发布请求来实现这一点时,我在302 Found
没有收到电子邮件的情况下获得了状态。
这是忘记密码请求刀片视图的代码:
<form action="/forgot-password" method="POST" class = "py-2 px-2" >
@csrf
<div class = "flex items-center justify-between">
<i class = "fal fa-at px-2"></i>
<input
type = "email"
name = "email"
class = "bg-gray-200 px-2 focus:outline-none w-full rounded-md"
required/>
</div>
<button type="submit" class = "flex items-center justify-between mt-2 bg-gray-100 w-full p-1">
<span class = "pl-2 text-sm"> {{ __('Send Password Reset Link') }} </span>
<i class = "fal fa-chevron-right"></i>
</button>
</form>
对于 vue 组件中的方法(从设置页面重置,这是行不通的)
requestNewPwd(){
axios.post("/forgot-password",{email : this.user.email}).then((resp) => {
if(resp.status == 200){
this.reset_pwd_sent = true
}
})
}