Нужна ли замена Clogin или я что-то упускаю?
-
28-09-2019 - |
Вопрос
Я серьезно учитываю откидывающуюся от CF8 Cflogin, потому что он привязан к серверу, который породил логин. В нагрузке сбалансированная среда вы застряли с липкими сессиями, если вы не выполняете пользовательскую реализацию.
У кого-нибудь есть какой-либо источник, который имитирует CLOGIN, который пишет и управляется с помощью клиента? Может быть, даже дизайн, который хорошо сочетается с переименом, замените на изобинин [любую] роль.
Что я должен думать о том, когда я считаю, что писать реализацию замены для Cflogin?
Решение
Вот основной не cflogin
Подход с использованием переменных, хранящихся в Client Case. Мы используем аналогичный подход для неклиплых сеансов на нашем кластере серверов за нашей балансировщиком нагрузки.
Этот код должен жить в Application.cfc
-> onRequestStart()
Метод:
<!--- handle login *post* --->
<cfif structKeyExists(FORM, "pageaction") and FORM.pageAction eq "adminlogin">
<!--- attempt to log user in --->
<cfif loginSuccessful>
<!--- Set client variables for session management --->
<cfset CLIENT.lastHit = now() />
<cfset CLIENT.loggedIn = 1 />
<!--- redirect to home page --->
<cfelse>
<!--- redirect to login page with message --->
</cfif>
<!--- all other requests, except for the login page --->
<cfelseif structKeyExists(CLIENT, "lasthit") and structKeyExists(COOKIE, "cfid") and structKeyExists(CLIENT, "cfid") and listLast(CGI.SCRIPT_NAME, "/") neq "login.cfm">
<!--- Check for timeout --->
<cfif (datediff("n", CLIENT.lastHit, now()) lte 10) and (CLIENT.loggedIn is 1) and (CLIENT.cfid is COOKIE.cfid)>
<!--- record last hit --->
<cfset CLIENT.lastHit = now() />
<cfelse>
<!--- timeout! redirect to login page --->
<cflocation URL="http://mydomain/login.cfm" addtoken="false" />
</cfif>
</cfif>
Есть роль пользователей, но я надеюсь, что это поможет в качестве отправной точки.
Другие советы
Я настроил мастер входа в систему CF через Dreamweaver, чтобы быть портативным и использовать таблицу БД для аутентификации и управления роли. Из-за этого я могу использовать его в качестве однопользовательского входа, либо в логинах нескольких учетных записей. Я никогда не использовал Clogin и не нужно было. Я просто бросаю файлы в каталог, настройте учетные данные входа, и именно это. Работает идеально каждый раз.