我正在为密码恢复创建逻辑。用户将通过提供他们的电子邮件地址来提交请求。然后将发送包含更多信息的电子邮件,其中包括带有 url 参数的链接。此参数是token使用 ColdFusioncreateUUID()方法创建的。当用户单击链接时,首先要检查的是 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具有密码输入字段的表单。如果链接已过期,我想知道应该用消息通知用户还是将他们踢回登录页面?我不确定这种情况是否有标准流程。如果有人有任何建议,请告诉我。