Аутентификация с помощью адаптера 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"};