1

パスワードを忘れるという単純な機能があります。ユーザーがパスワードの変更を要求すると、トークン付きのメールが届き、それをクリックするとメールが届き、新しいパスワードを取得するページにリダイレクトされます。

私がすることは、電子メールのリンクをクリックすると、サーバーがリクエストを取得し、関数がリンクからデータを取り出して (res.render を使用して) データを含むページをレンダリングし、レンダリングされたページにリダイレクトすることです。

私が直面している問題は、リンクをクリックすると、データとページがレンダリングされますが、 res.redirect() を機能させることができません。

私のリンクは次のようになります

http://localhost:3000/api/resetpassword?_csrf=ab8aa6a41567f817330e3e0a214725f8b2f88b487d5bef16f162e033c6a63dc41933511ddb79cb44ca049f472b3e0c593dbbaf&email=dummyEmail%2540dumyurl.ca

そして、app.get() を使用してサーバーでリクエストを取得します。

app.get('/api/resetpassword', Admin.resetPasswordPage);

私のレンダリングとリダイレクト機能は次のようになります。

resetPasswordPage: function (req, res, next) {
    req.query.email = decodeURIComponent(req.query.email) ;
    res.render('resetPassword', {
        Email: req.query.email,
        Csrf : req.query._csrf,

    }, function (err, html) {
        console.log("TESTING HTML ", html);
        if (!err)
        res.redirect("/resetPassword");
    });
}

htmlパラメーターでページの完全なHTMLを取得しているため、レンダリングは成功していますが、問題はそのページにリダイレクトする方法です。そのページは EJS で作成され、views フォルダーにあります。

4

1 に答える 1