3

My client had upgraded magento version in his site recently.

But after upgrade whenever the customers try to reset their passwords they get link in their email, and when they click on the link they are redirected to forgot password page with error "Your password reset link has expired".

I have checked in Admin panel at System > Configuration > Advanced > Admin > Admin User Emails > Recovery Link Expiration Period (days)

It is set to 2 days, still when customer open his reset password link in browser it shows the above error message.

I am sure no customer module overrides are there(community/local).

Current magento version running is ce-1.9.2.1.

Any suggestions please.

  • Yes checked it already, but didn't seem to help, I am having issue of error message displaying and the actual template of "Reset Password" not loading at all. Moreover, I also modified the "customer.xml" but still same issue. – Vicky Dev Sep 29 '15 at 12:51
  • did you find a solution? – lrkwz Feb 19 '16 at 18:23
5

I had the same, but a second error message appeared which said that a required field is not filled out. In general: when anything goes wrong when saving the customer, the said error message "Your password reset link has expired" shows up. So, pay attention to any additional error messages showing up or in your log files.

If you want to find out what's happening in detail, go to the file "app/code/core/Mage/Customer/controllers/AccountController.php" and modify the method resetPasswordPostAction temporarily. Inside the } catch (Exception $exception) { directive, add Mage::logException($e);. After you have seen the error again, you can find the real error message in the file var/log/exception.log.

  • I guess it would solve the problem. Now, will be waiting to see the response from Vicky Dev. – perfectionist1 Jun 17 '16 at 19:55
1

The issue can be related to template file. In my case when i was updating the password it was showing the error "your password reset link has expired."

If this the case, Please go to /app/design/frontend/base/default/template/customer/form/resetforgottenpassword.phtml

if the form shows like this:

<form action="<?php echo $this->getUrl('*/*/resetpasswordpost'); ?>" method="post" id="form-validate">

replace it with:

<form action="<?php echo $this->getUrl('*/*/resetpasswordpost', array('_query' => array('id' => $this->getCustomerId(), 'token' => $this->getResetPasswordLinkToken()))); ?>" method="post" id="form-validate">

Then try to reset the password.

  • I tried this in 1.9.1.0 but I still get "Your password reset link has expired." – yldziner Sep 2 '16 at 20:26
  • Have you installed any new patch ? – Ajendra Panwar Sep 7 '16 at 14:39
  • all patches are updated – yldziner Sep 10 '16 at 22:37
  • There are lots of changes in core code in magento 1.9.1.0 and magento 1.9.1.1, Magento released version 1.9.1.1 after version 1.9.1.0, so make sure you have installed the patches only for 1.9.1.0. – Ajendra Panwar Sep 12 '16 at 8:14
0

You can try this fix, go to your theme's layout/customer.xml and add:

<customer_account_changeforgotten translate="label">
    <label>Reset a Password</label>
    <remove name="right"/>
    <remove name="left"/>

    <reference name="head">
        <action method="setTitle" translate="title" module="customer">
            <title>Reset a Password</title>
        </action>
    </reference>
    <reference name="root">
        <action method="setTemplate">
            <template>page/1column.phtml</template>
        </action>
        <action method="setHeaderTitle" translate="title" module="customer">
            <title>Reset a Password</title>
        </action>
    </reference>
    <reference name="content">
        <block type="customer/account_changeforgotten" name="changeForgottenPassword" template="customer/form/resetforgottenpassword.phtml"/>
    </reference>
</customer_account_changeforgotten>

More details here: http://www.dudesquare.nl/blog/2015/11/03/reset-password-blank-page-magento-1-9-2-2/

0

Maybe you use old email templates:

Replace

{{store url="customer/account/resetpassword/" _query_id=$customer.id _query_token=$customer.rp_token}}

with

{{store url="customer/account/resetpassword/" _query_id=$customer.rp_customer_id _query_token=$customer.rp_token}}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.