Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 191
  • Last Modified:

How can I restart a session

If the user clicks the log out button, I'm doing a structclear of the session scope. This means that any subsequent pages will not have the cfid or cftoken defined, so what I need to do is actually destroy the current session and restart a new one all in the same chunk of code. I happen to be doing this in onRequestStart

Thanks.
0
jtreher
Asked:
jtreher
  • 2
  • 2
1 Solution
 
dgrafxCommented:

Why not do the structclear on a "logout" page

<cfset StructClear(session)>  of course to clear the struct
<then locate back to a home page or login or whatever>
aborting immediately after
<cfabort>

This is assuming you have some code in place that creates the session if it doesn't exist that is called when user comes to the site.
0
 
jtreherAuthor Commented:
Hmmm, the URL token is the only thing that shows up in the session scope. cfid and cftoken will not recreate themselves unless the browser is shut down.

i'm calling onSessionEnd() and then onSessionStart
0
 
dgrafxCommented:
Possibly you need to recreate them manually within your onSessionEnd
0
 
JeffHowdenCommented:
jtreher, this is why the CF docs specifically warn against using the StructClear() function on the session scope.

What I do to avoid this is have all session stuff stored in a key (that is itself a structure) off the session scope.

<cfscript>
  session.user = StructNew();
  session.user.id = 0;
  session.user.username = '';
  session.user.email = '';
</cfscript>

Then, clearing the login is as simple as using StructDelete on the user key.

<cfscript>
  StructDelete(session, 'user');
</cfscript>

Then, a redirect.  Some initialization code in application.cfm detects that the user key does not exist in the session scope and recreates it and all it's keys.
0
 
jtreherAuthor Commented:
Sorry about the delay, I will check into this because I really am using a substructure as well.
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now