我正在创建密码恢复逻辑。用户将通过提供其电子邮件地址来提交请求。然后,将向电子邮件发送更多信息,包括带有url参数的链接。此参数是使用ColdFusion token
方法创建的createUUID()
。当用户单击链接时,首先要检查的是url参数是否存在,然后检查其是否为有效令牌。下一步是检查令牌是否存在于数据库中,并提取Expiration
的值/时间戳。这是我的代码示例:
<cfscript>
if (structKeyExists(url,"token") AND isValid("uuid", url.token) AND len(trim(url.token)) EQ 35){
cfstoredproc( procedure="ckToken", datasource=dsn ) {
cfprocparam( maxlength=35, null=!len(trim(url.token)), cfsqltype="cf_sql_varchar", dbvarname="@Token", value=trim(url.token) );
cfprocresult( name="Result" );
}
if( dateCompare(now(), Result.Expires, "s") == -1 ){
writeOutput("Link Valid Current: " & now() & " Expires: " & Result.Expires);
//include = "form.html";
}else{
writeOutput("Link Invalid Current: " & now() & " Expires: " & Result.Expires);
}
}else{
}
</cfscript>
如果链接有效且未过期,则用户将被定向到具有密码输入字段形式的.html
。如果链接已过期,我想知道应该用消息通知用户还是将他们踢回登录页面?我不确定这种情况是否有标准流程。如果有人有任何建议,请告诉我。