私が構築している Web アプリでは、パスワードをリセットする方法が 2 つあります。ログイン ページ (ユーザーはまだログインしていません) からと、設定ページからです。
Laravel Fortify を使用してパスワードをリセットしています。ドキュメントによると、POST リクエストを送信するだけ/forgot-password
で、電子メールが生成されて直接送信されます。
パスワードのリセット ビュー (POST フォームを使用したクラシック ブレード) からこれを行うと、正常に動作し、電子メールを受け取ります。
ただし、Vue コンポーネントである設定ページから、メール パラメータを使用して 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
}
})
}