0

我在我正在处理的示例应用程序中使用适配器身份验证。我在启动时需要登录页面,所以我WL.Client.Login在 js 文件中使用了这个

函数 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 ]
    };

所以它转到 Adapter-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],

    });

}

问题是,它在启动时成功显示了登录页面,并且它也进入了适配器文件。我不知道在哪里可以创建用户身份并且 WL.Server.setActiveUser("AdapterAuthRealm", userIdentity);WL.Server.invokeSQLStatement接受onsuccess参数。

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

4

1 回答 1

1

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

var result = WL.Server.invokeSQLStatement(....);
if (result is not empty) {
     WL.Server.setActiveUser("realm", userIdentity).
     return {authStatus:"success"};
} else
     return {authStatus:"failure"};
于 2013-09-24T13:18:38.750 回答