Аутентификация с помощью адаптера SQL - Worklight

Я использую аутентификацию адаптера в примере приложения, над которым я работаю. При запуске мне нужна была страница входа, поэтому я использовал WL.Client.Login в файле JS Лике это

function 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 параметр.

Нет примеров доступных для аутентификации адаптера 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"};
Другие вопросы по тегам