Как настроить логин с формой входа на каждой странице в Jquery Mobile и Coldfusion8?
Я пытаюсь настроить аутентификацию пользователей в Jquery Mobile/Coldfusion8. Я пользуюсь Coldfusion всего неделю, поэтому я все еще на шаткой земле.
Скажем, у меня есть следующие страницы Jquery Mobile:
// "outside"
index.cfm
content.cfm
content2.cfm
content3.cfm
// "inside"
secure.cfm
Пользователь должен иметь возможность войти со всех сторонних страниц, используя форму входа.
Я пытаюсь придумать лучший способ справиться с этим с несколькими страницами контента, каждая из которых имеет свой собственный логин (не могу изменить это). Проблема будет заключаться в том, что при смене страниц у меня всегда будет как минимум две страницы в DOM, поэтому будут две формы входа, обе с именем "LoginForm".
Я попытался, тем не менее, и получаю эту ошибку:
Variable THISFORM is undefined
не уверен, почему? Возможно, потому что на странице index.cfm уже есть "loginForm".
Мой вопрос:
Есть какие-нибудь подсказки по моей ошибке?
Что было бы лучшим способом настроить что-то подобное? Я думаю, что вся процедура входа должна идти в index.cfm, так как это будет якорная страница, которая всегда остается в DOM. Я также помещаю форму входа в шаблон и перетаскиваю ее на каждую страницу, что тоже кажется правильным.
Но как обрабатывать несколько экземпляров моей формы входа?
Спасибо за помощь
РЕДАКТИРОВАТЬ: некоторый код:
<!-- TEMPLATE -->
<CFFORM ACTION = "#ThisForm#" NAME = "LoginForm" >
<input name = "Username2" id="Username2" type="text" />
<input name = "Password2" id= "Password2" type="password" />
<input type = "submit" id="CheckLogin" name="CheckLogin" value="<cfoutput>#tx_login#</cfoutput>" />
</CFFORM>
<!-- INDEX PAGE and content pages all look like this -->
<cfoutput>
<div data-role="page" id="starter">
<div data-role="header" data-position="fixed" data-theme="a">
<h1><cfoutput>#tx_willkommen#</cfoutput > </h1>
<!-- this calls the template -->
<CFINCLUDE TEMPLATE="../templates/tmp_pop.cfm">
</div>
<div data-role="content "...
</cfoutput>
<!-- inside application.cfm -->
<cfif Session.ative EQ "No ">
<CF_index datasource="mydatabase "
...>
<!-- inside index.cfm -->
<cfif Session.ative EQ "No ">
<CFPARAM NAME="Attributes.Datasource ">
<CFPARAMs more params...
</cfif>
Не уверен, что это полезно, но вы должны получить основную структуру из этого. Может быть проблема в том, что я устанавливаю параметры только на index.cfm, ЕСЛИ сеанс не активен. Если пользователь переходит к index.cfm, параметры устанавливаются, создается сеанс. Я думал, что когда я загружаю следующую страницу в DOM, эти параметры все еще активны, не так ли?
1 ответ
Я никогда не занимался мобильной разработкой, но мы просто устанавливаем cookie с истечением срока действия и проверяем этот cookie каждый раз, когда пользователь пытается получить доступ к странице, и просто включаем этот файл проверки cookie.
<cfinclude template="cookie_check.cfm">
cookie_check.cfm:
<CFIF IsDefined("cookie.User_Id") is False OR isDefined("cookie.password") is False
<title>Login Error</title>
<h3>You must login . Click here to <a href="index.cfm">login</a>.</h3>
<CFABORT>
</CFIF>
Я предполагаю, что вы могли бы сделать что-то подобное на своих страницах. Просто включите небольшой контрольный файл, и, если срок его действия истек, покажите страницу входа.