我有一个运行良好的登录页面。现在我想退出。
下面是我的 header.cfm 文件中的链接。如果 session 变量是 true
它显示“注销”。如果没有,则显示“登录”。所以我只想注销。
<a id="login-link" href="login.cfm">
<cfif session.userLoggedIn>logout <cfelse>LogIn</cfif>
</a>
申请.cfc
public boolean function onRequestStart(string targetPage)
{
if(findNocase("login.cfm", arguments.targetPage))
{
return true;
}
else if(session.userLoggedIn)
return true;
else
{
include "login.cfm";
return false;
}
}
public void function onSessionStart(struct sessionObj)
{
session.userLoggedIn = false;
}
登录.cfm
<cfif isDefined("form.btn_login") >
<cfset userResultResponse = communtiyServic.getUsers(form.user,form.pwd)>
<cfset userQry = userResultResponse.getQryData() >
<cfif userQRY.recordCount gt 0 >
<cfset session.userLoggedIn = true />
<cflocation url="index.cfm" >
<cfelse>
<cfoutput>invaled userName or password </cfoutput>
</cfif>
</cfif>
最佳答案
如果您正在使用 CFID
和 CFTOKEN
对于您的 session 标识 cookie(您可能不应该这样做,但它是默认设置),那么您应该只需调用 SessionInvalidate()
在您的 logout()
方法。这将使服务器和客户端之间的 session 连接无效。我不确定它是否使服务器上的 session 数据过期,但如果没有,它会在超时期限后自行超时。与此同时,它在客户端将无法访问,出于所有意图和目的,它可以满足您的需求。
关于session - 注销并终止 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24545551/