2013-09-24 108 views
0

我在使用示例应用程序中使用适配器身份验证。我需要在登录页面启动,所以我已经使用了WL.Client.Login在js文件liek这SQL适配器身份验证 - 工作灯

功能wlCommonInit(){

WL.Client.login("AuthRealm", {onSuccess: winFunction, onFailure: failureFunction}); 

}

它调用挑战者处理器及以下功能是越来越援引

$("#AuthSubmitButton").bind('click', function() { 
    var username = $("#AuthUsername").val(); 
    var password = $("#AuthPassword").val(); 
console.log("called"); 
    var invocationData = { 
     adapter : "Auth", 
     procedure : "submitAuthentication", 
     parameters : [username,password ] 
    }; 

所以它去哪里我越来越喜欢这个输入适配器,impl.js文件..

var auth = WL.Server.createSQLStatement("select * FROM users WHERE Username = ? AND Password = ? ;"); 
function submitAuthentication(username,password){ 

    return WL.Server.invokeSQLStatement({ 
     preparedStatement :auth, 
     parameters : [username,password], 

    }); 

} 

的问题是,它成功地显示了在启动时的登录页面,它进入适配器文件太..我不知道我在哪里可以创造的UserIdentity和WL.Server.setActiveUser("AdapterAuthRealm", userIdentity);WL.Server.invokeSQLStatement不接受onsuccess参数。

没有可用于Worklight的Sql适配器身份验证的示例。所以我别无选择,只能提出一个问题。请在这件事上给予我帮助!

回答

1

你不需要返回sql调用结果。相反,在您的适配器中使用它来查看认证是否成功。例如

var result = WL.Server.invokeSQLStatement(....); 
if (result is not empty) { 
    WL.Server.setActiveUser("realm", userIdentity). 
    return {authStatus:"success"}; 
} else 
    return {authStatus:"failure"}; 
+0

感谢您的回复安东。它显示的错误是不是即使我声明结果变量为布尔值?.. – Ash

+0

@Anton WL-AUTHENTICATION-SUCCESS不存在于受保护的过程的结果。为什么? – BalajiG

相关问题