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.

3
  • 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, 2015 at 12:51
  • did you find a solution?
    – lrkwz
    Feb 19, 2016 at 18:23

4 Answers 4

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($exception);. After you have seen the error again, you can find the real error message in the file var/log/exception.log.

1
  • I guess it would solve the problem. Now, will be waiting to see the response from Vicky Dev. Jun 17, 2016 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.

4
  • I tried this in 1.9.1.0 but I still get "Your password reset link has expired."
    – yldziner
    Sep 2, 2016 at 20:26
  • Have you installed any new patch ? Sep 7, 2016 at 14:39
  • all patches are updated
    – yldziner
    Sep 10, 2016 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. Sep 12, 2016 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 and acknowledge that you have read and understand our privacy policy and code of conduct.

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