[Catalyst] Clearing $c->req->params in CatalystX::SimpleLogin ...

Kiffin Gish kiffin.gish at planet.nl
Fri Feb 19 10:23:23 GMT 2010

I've been playing around with the ideas used in CatalystX::SimpleLogin,
and it's been a good learning experience for me!

However, I discovered a slight problem with the redirect in which the
current uri is saved in a session key like this:

$c->session->{redirect_to_after_login} = $c->uri_for($c->action,
$c->req->captures, $c->req->args->flatten, $c->req->parameters);

(aside: don't forget to include 'use Moose::Autobox;')

If the request parameters are left in place they'll just be passed on to
the login form, or whatever form that may be.

I'm using HTML::FormHandler, and I get an error that the user/password
fields need to be entered.

The solution is to clear the parameters before passing them on to the
loginpage. In the package CX::SL::TF::C::Login::WithRedirect:

# Clear the parameter fields.
delete $c->req->params->{$_} for (keys %{$c->req->params});

Curious what others think...

Kiffin Gish <Kiffin.Gish at planet.nl>
Gouda, The Netherlands

More information about the Catalyst mailing list