Я создаю приложение Angular2, в котором мне нужен пользовательский логин вместо существующего входа в систему. Итак, я добавил следующий код и создал несколько новых файлов и код в виде следующихСоздать пользовательский логин в wakanda 1.1.3
я добавил новый login.js файла под расположением бэкэнда со следующим кодом
directory.setLoginListener("loginFuction","Admin");
Я внес изменения в мой require.js как следующего
function loginFunction(email,password){
console.log("Call is being made to the backend");
var u = ds.User.find("email : 1" ,email);
console.log(u);
if(!u){
return false;
}else{
var token = currentSession.promoteWith("Admin");
if(u.password == password){
var theGroups = [];
switch(u.role){
case 'Admin':
theGroups.push('Admin');
break;
case 'Users':
theGroups.push('Users');
break;
}
var connectTime = new Date();
return {
ID : u.ID,
name : u.email,
fullName : u. fullname,
belongsTo : theGroups,
storage:{
time : connectTime
}
};
}else{
return {
error : 1024,
errorMessage : "invalid login"
}
}
}
};
когда IC все loginFunction из моей нормальной компоненты, как
this.wakanda.directory.login('[email protected]','adithya').then(res => {
console.log(res);
});
Я получаю сообщение об ошибке с указанием
EXCEPTION: Uncaught (in promise): Error: Directory.login: Unauthorized
Все таблицы делаются глобальный доступ, и все делается как общедоступный.
Может ли кто-нибудь помочь мне с этим решением.
Заранее спасибо.
Вы получаете консольные журналы, которые вы добавили в свой регистратор входа? Убедитесь, что вы установили тип проверки подлинности в файле 'settings.waSettings' вашего решения на уровне решения по своему усмотрению. Ваш пользовательский запрос в вашем прослушивателе входа должен быть 'ds.User.find (« email ==: 1 », email);' и вам не нужно продвигать текущий сеанс в своем прослушивателе входа, поскольку вы уже это сделали в 'directory.setLoginListener (" loginFuction "," Admin ")' – Stefan
'directory.setLoginListener (" loginFuction "," Admin ")' должен быть частью файла начальной загрузки (а не некоторых случайных login.js в бэкэнд) http : //doc.wakanda.org/home2.en.html#/Users-and-Groups/Directory/setLoginListener.301-871936.en.html – Stefan
Стефан прав, 'setLoginListener' должен находиться внутри файла начальной загрузки. – Yann