Hi all,
Does anyone have a working example of auth.cfc (the file that gets
generated when using the CF Wizard? I thought the code below would be
sufficient but its still not working. Any suggestions?
CODE:
AUTH.CFC:
<cffunction name="login" access="remote" returntype="boolean">
<cfargument name="user" required="yes" />
<cfargument name="password" required="yes" />
<cfset var qRead="">
<cfquery name="qRead" datasource="tiomkin">
SELECT UserName, UserPassword
FROM USERS
WHERE UserName = <cfqueryparam
cfsqltype="CF_SQL_VARCHAR"
value="#arguments.user#" />
AND UserPassword = <cfqueryparam
cfsqltype="CF_SQL_VARCHAR"
value="#arguments.password#" />
</cfquery>
<cfif qRead.recordcount gt 0>
<cfreturn true>
<cfelse>
<cfreturn false>
</cfif>
</cffunction>
LOGIN.MXML:
<?xml version="1.0" encoding="utf-8"?>
<mx:Form xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*"
width="100%" height="100%" creationComplete="initApp()">
<mx:Metadata>
[Event("forgotpassword")]
[Event("loginSuccessful")]
</mx:Metadata>
<mx:Script>
<![CDATA[
import mx.events.ValidationResultEvent;
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
import mx.utils.ObjectUtil;
import mx.controls.Alert;
private var lso:SharedObject;
private function initApp():void
{
this.lso = SharedObject.getLocal("auth");
if( this.lso.data['email'] != null )
{
this.user.text = this.lso.data['email'];
this.rememberLogin.selected = true;
}
if( this.lso.data['password'] != null )
{
this.password.text = this.lso.data['password'];
this.rememberLogin.selected = true;
}
}
private function isValid():Boolean
{
var pswdValidResult:ValidationResultEvent =
this.pswdValidate.validate(this.password.text);
if (pswdValidResult.type==ValidationResultEvent.VALID)
{
return true;
}
else
{
return false;
}
}
private function authenticateUser():void
{
if( isValid() )
{
authManager.login( this.user.text, this.password.text
);
}
}
private function errorMessage(msg:String):void
{
//Alert.show( ObjectUtil.toString(event.message) );
this.errorMsg.text = msg;
this.errorMsg.height = 15;
this.errorMsg.visible = true;
}
private function serverFault(event:FaultEvent):void
{
errorMessage(event.message['message']);
}
private function login_result(event:ResultEvent):void
{
// login successful, remember the user.
if( Boolean(event.result) )
{
if( this.rememberLogin.selected )
{
this.lso.data['user'] = this.user.text;
this.lso.data['password'] = this.password.text;
}
else
{
this.lso.data['user'] = null;
this.lso.data['password'] = null;
}
this.dispatchEvent( new
Event('loginSuccessful') );
}
else
{
// login didn't work. show message
errorMessage("Login unsuccessful");
}
}
]]>
</mx:Script>
<mx:RemoteObject
id="authManager"
destination="ColdFusion"
source="Tiomkin.Tiomkin_Admin.components.cfgenerated.managers.Auth"
showBusyCursor="true">
<mx:method name="login" result="login_result(event)"
fault="serverFault(event)" />
</mx:RemoteObject>
<mx:StringValidator
id="pswdValidate"
source="{this.password}"
property="text"
required="true" />
<mx:Text id="errorMsg" visible="true"
color="red" width="100%" height="0" />
<mx:FormItem width="100%" label="UserName" required="true">
<mx:TextInput id="user"
width="175"/>
</mx:FormItem>
<mx:FormItem width="100%" label="Password" required="true">
<mx:TextInput id="password"
displayAsPassword="true"
width="175"/>
</mx:FormItem>
<mx:FormItem>
<mx:CheckBox id="rememberLogin"
label="Remember Login"
selected="false" />
</mx:FormItem>
<mx:VBox width="100%" horizontalAlign="right">
<mx:Button label="Login" click="authenticateUser();"/>
<mx:LinkButton label="Forgot Password?"
click="this.dispatchEvent(new Event('forgotpassword'));"
fontStyle="italic" width="150" textAlign="right"/>
</mx:VBox>
</mx:Form>
Thanks in advance,
David
--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/flexcoders/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/flexcoders/join
(Yahoo! ID required)
<*> To change settings via email:
mailto:[EMAIL PROTECTED]
mailto:[EMAIL PROTECTED]
<*> To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/