Great work easylancer - I hope this additions work out for you.
Unfortunately, I’ve been giving this particular issue quite a bit of thought and I am unsure as to whether a full-scale forgotten password implementation fits within the scope of ErkanaAuth. More than likely, what you will see, is a set of methods that will assist in creating your own forgotten password functionality.
My perfect forgotten password functionality works as so, therefore my methods will be assistants in creating this functionality:
1. User enters their username and email address in form.
2. Their account receives a unique key for a 24-hour period that permits them to visit a password change page, with that unique key, and change their password.
This prevents people from entering an email address and automatically changing someone’s password. In addition, it gives the user the freedom to reassign their own password, rather than you giving them one, them coming back, and having to change it again. It’s all taken care of in one step.
I’m not trying to knock your work on this easylancer. That’s the beauty of ErkanaAuth - it’s non-invasive, which means it can be utilized and extended to make your job as easy as possible. Unfortunately, it’s not really what I am looking for in the library as a whole.
To be honest, I’m not sure if I’ll ever add forgotten password functionality to Erkana. At first glance, it seems like an appropriate fit, but when you actually use and “feel” the style of Erkana you realize it still leaves you, the developer, in total control. I fear it would be difficult to implement forgotten password without stealing some of that control from the developer.