首页 文章

如何将帐户状态设置为在流星中登录?

提问于
浏览
0

我正在使用自定义LDAP验证方法来为我的应用程序验证用户 . 我所做的是,我有用户集合,我将首先找到userId,如果它的真实,我将调用"ldapLogin"方法,它将使用LDAP服务器验证用户 . 然后我想将Meteor帐户的状态设置为userId的登录状态 .
login.js

Template.login.events({
  'click #loginbtn': function (e) {
    username = $('.ui.form').find('#loginform_username').val();
    password = $('.ui.form').find('#loginform_password').val();
    var dn=<DN info>;
    var sys_password=<password>;
        if( username!="" || password!=""){
            var count=Meteor.users.find({username:username}).count(); //check for users already exist or not
            if(count==1){
                Meteor.call('loginLdap',dn,username,sys_password,function (error, result) {
                if (error) 
                    console.log(error.reason);

                    Session.set('userLogin',result);
            });
            var employeeLogin=Session.get('userLogin');
            if(employeeLogin){
                /*
                 *how to change the login status with only passing username 
                 */
            }           
        }else alert("User not found!\n Please check your username or contact your Manager.");
    }else alert("Username/Password field can not be empty!");

由于我已经验证了密码,我希望登录只能通过用户名 . 这可以在Meteor Accounts包中做到吗?

1 回答

  • 0

    您只需使用userId即可使用Meteor.call登录用户 . 在服务器上,我执行以下操作:

    Meteor.methods({
    'landingLogin'(userId) {
       const stampedLoginToken = Accounts._generateStampedLoginToken();
       Accounts._insertLoginToken(userId, stampedLoginToken);
       return stampedLoginToken;
      }
    });
    

    然后在客户端:

    Meteor.call('landingLogin', userId, (error, result) => {
      if (error) {
    
      } else {
        Meteor.loginWithToken(result.token);
      };
    });
    

相关问题