[Catalyst-dev] Re: Implementing a 'remember me on this computer' button

Edmund von der Burg evdb at ecclestoad.co.uk
Thu Apr 7 13:03:09 GMT 2011


On 7 April 2011 13:48, Marcus Ramberg <marcus at nordaaker.com> wrote:
> Hey, sorry if this has already been mentioned, but what about http://search.cpan.org/~nuffin/Catalyst-Plugin-Session-DynamicExpiry-0.02/lib/Catalyst/Plugin/Session/DynamicExpiry.pm ?

Similar - but there is one key difference. I want to be able to change
a cookie so that when a browser is quit it is deleted at once - by
setting the expiry to '0'. But the user should also be able to have a
persistant cookie if they want. For both scenarios the ttl of the
session could be nice and long, distinct from the cookie behaviour.

Something like DynamicExpiry comes close in that it lets you set a low
ttl, but it does not allow you to change the expiry in the cookie to
'0'.

I think that as this behaviour is so cookie specific it belongs in the
cookie state code. Certainly it is something that the DynamicExpiry
code could use to change the cookie's properties.

Hope that makes sense :)

Cheers,
  Edmund.


> Marcus Ramberg
> Chief Yak Shaver
> Nordaaker Consulting http://nordaaker.no/
>
> On torsdag 7. april 2011 at 14.04, Edmund von der Burg wrote:
>> On 4 April 2011 10:43, Edmund von der Burg <evdb at ecclestoad.co.uk> wrote:
>> > It seems to me that the easiest way to implement this might be to add
>> > a flag that can be saved to the session - 'browser_session_only' or
>> > similar. This would then be checked by the
>> > C::P::Session::State::Cookie code (for the individual session) and the
>> > correct cookie expiry time set. Happy to provide patches/tests if this
>> > is the way to go.
>>
>> It would appear that there was no good standard way to do this.
>>
>> Attached are patches for code and tests that add the following method
>> to Catalyst::Plugin::Session::State::Cookie:
>>
>> set_session_cookie_expire $ttl_in_seconds
>>
>>  $c->set_session_cookie_expire(3600); # set to 1 hour
>>  $c->set_session_cookie_expire(0); # expire with browser session
>>  $c->set_session_cookie_expire(undef); # fallback to default
>>
>> This lets you change the expiry for the current session’s cookie. You can set a
>> number of seconds, 0 to expire the cookie when the browser quits or undef to
>> fallback to the configured defaults. The value you choose is persisted.
>>
>> Note this value has no effect on the exipry in the session store - it only
>> affects the cookie itself.
>>
>>
>> The patch is against the latest from the repo:
>>
>> URL: http://dev.catalyst.perl.org/repos/Catalyst/Catalyst-Plugin-Session-State-Cookie/trunk
>> Revision: 13996
>>
>>
>> I hope that they can be applied soon - let me know if they need any changes :)
>>
>> Cheers,
>>  Edmund.
>> _______________________________________________
>> Catalyst-dev mailing list
>> Catalyst-dev at lists.scsys.co.uk
>> http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst-dev
>>
>> Attachments:
>> - set_session_cookie_expire.diff
>>
>>
>
>
>
> _______________________________________________
> Catalyst-dev mailing list
> Catalyst-dev at lists.scsys.co.uk
> http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst-dev
>



-- 
Edmund von der Burg - evdb at ecclestoad.co.uk
mob: +44 7903 420 689
web: http://www.ecclestoad.co.uk/



More information about the Catalyst-dev mailing list