2013-09-24 109 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

相關問題