On Fri, 12 Oct 2007, Bill Moseley wrote:

Perhaps this is wandering back into the "sub-sessions" and continuations
discussions, but I'm curious if anyone is using some method such as an
additional query parameter to make sure that the data in the flash
is going to the correct browser window.

Perhaps something like:

   $c->stash->{message} = 'Record Updated';

   $c->persist_stash( qw/ message first_name other_stash_thing / );
   $c->res->redirect( $c->uri_for( 'list' ) );

And then in some finalize action place the stash items listed in the
session based on some unique request ID and alter $c->res->redirect to
include the request ID.

   Location:  http://localhost:3000/foo/list?rid=abcde

Then early in the request watch for the request id and when found
initialize the stash with the saved items in the session.


Is anyone doing something like this currently?  If so, I'm curious
about the implementation.

I'm doing something very similar, except I just the session itself, and it's my _only_ use of sessions.

In my case, I just put the session id in the URI. Sessions never contain sensitive info, and they expire after 5 minutes, so I'm not too worried about the security issue.

- How do you decided when an item stored this way is stale?
 My initial implementation looks for and removes "old" items
 when adding new items into the persistent stash.

Because my sessions expire quickly, this isn't an issue. If the session is expired, I just redirect the client to the same URI without the session id.

- What do you do if a request comes in with a "request id"
 that is not found in the session?  (Similar problem to
 a continuation request with an invalid continuation id.)

See above.


The main reason I did things the way I did was to aim for a RESTful interface. My URIs always represent something specific ("login form" or "login form plus session X") and repeatable.

For other things I might've previously stuck in a session (like searches, paging, etc) I just stick it in the URI, again to be RESTful. This also has the bonus that users will be able to bookmark searches and such easily, which is nice.

I'm planning to write up how I did this and post it on my use Perl journal at some point. It's nothing revolutionary, but it might be of interest to others.


-dave

/*===================================================
VegGuide.Org                        www.BookIRead.com
Your guide to all that's veg.       My book blog
===================================================*/

_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[EMAIL PROTECTED]/
Dev site: http://dev.catalyst.perl.org/

Reply via email to