2017-02-09 6 views
0

Я создаю приложение 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

Все таблицы делаются глобальный доступ, и все делается как общедоступный.

Может ли кто-нибудь помочь мне с этим решением.

Заранее спасибо.

+0

Вы получаете консольные журналы, которые вы добавили в свой регистратор входа? Убедитесь, что вы установили тип проверки подлинности в файле 'settings.waSettings' вашего решения на уровне решения по своему усмотрению. Ваш пользовательский запрос в вашем прослушивателе входа должен быть 'ds.User.find (« email ==: 1 », email);' и вам не нужно продвигать текущий сеанс в своем прослушивателе входа, поскольку вы уже это сделали в 'directory.setLoginListener (" loginFuction "," Admin ")' – Stefan

+0

'directory.setLoginListener (" loginFuction "," Admin ")' должен быть частью файла начальной загрузки (а не некоторых случайных login.js в бэкэнд) http : //doc.wakanda.org/home2.en.html#/Users-and-Groups/Directory/setLoginListener.301-871936.en.html – Stefan

+0

Стефан прав, 'setLoginListener' должен находиться внутри файла начальной загрузки. – Yann

ответ

1

Точный метод создания пользовательского входа в Ваканде студии 1.1.3 имеет следующие мы должны сделать изменения в вызове функции присутствуют в bootstrap.js как следующий

directory.setLoginListener("loginFunction"); 

удаления «Admin» - второй параметр.

Смежные вопросы