У меня есть логин в моем новом приложении, которое проверяет каждый запрос на вход пользователя в систему. Если пользователь не вошел в систему автоматически, он будет перенаправлен на страницу входа.У меня есть ситуация, когда пользователь нажимает на Forgot Password
.В этом случае я сгенерировал временную ссылку, которая направит пользователя на страницу reset.cfm
.Однако проблема в том, что пользователь не вошел в систему, и если я попытаюсь нажать на ссылку, которая должна направить меня на reset.cfm
, мой код направит меня на login.cfm
.Вот логика, которую я использую в Application.cfc
:
public boolean function onRequestStart(required string thePage) output="false" {
local.page = listLast(arguments.thePage,"/");
//onApplicationStart();
if(!listFindNoCase("Login.cfm,Authentication.cfc",page)){
if(structKeyExists(SESSION, "loggedin") AND SESSION.loggedin EQ false){
location(url="https://example.com", addToken="false");
}
}
return true;
}
. Как видно из приведенного выше примера, при каждом запросе я проверяю флаг loggedin
.Мне интересно, как я могу дать пользователю доступ к Reset.cfm?token=94129873129
ссылке на страницу?Я хотел бы, чтобы моя логика работала одинаково для пользователей, которые не вошли в систему. В то же время мне нужно предоставить им доступ к Reset.cfm
.Если у кого-то есть предложения о том, как этого можно достичь или лучший способ справиться с этим, пожалуйста, дайте мне знать.Одним из решений, о котором я думал, было это решение в Main.cfm
:
<cfif structKeyExists(url,"token")>
<cfinclude template="Reset.cfm">
<cfelse>
<cfinclude template="Login.cfm">
</cfif>
Если параметр url token
существует, тогда направьте пользователя на Reset.cfm
, если не на Login.cfm
.