Как настроить логин с формой входа на каждой странице в 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> 

Я предполагаю, что вы могли бы сделать что-то подобное на своих страницах. Просто включите небольшой контрольный файл, и, если срок его действия истек, покажите страницу входа.

Другие вопросы по тегам