Implement forgot_password and other enhacments in auth