2015-06-08 2 views
2

Я работаю над приложением Loopback, которое имеет двух типов пользователей - «Супервизор», которые могут самостоятельно регистрироваться в приложении и «Подчиненные», которые могут быть зарегистрированы только (и привязан к этому лицу). Супервизоры используют электронную почту и пароль для входа в систему как базовая модель пользователя в loopback, но Subordinates использует сгенерированный адрес электронной почты и пароль на основе хеша даты. Это делается для обеспечения того, чтобы записи Subordinate не привязывались к личным идентификационным данным и являются требованием приложения. Подчиненные могут войти в систему с созданными учетными данными, но отслеживание псевдослучайной информации не представляется возможным.Войти с одноразовым токеном с помощью Loopback

Есть ли какой-либо способ для пользователя в Loopback получить токен доступа (или даже лучше, сгенерированную незарегистрированную кодовую фразу), который можно использовать вместо имени пользователя и пароля для входа в подчиненный тип пользователя? Похоже, что это аналогичная функция для входа в систему с токеном для сброса пароля, но я не уверен, как это сделать с помощью многоразовой кодовой фразы.

+1

Не уверен, почему это проголосовали - аутентификация уже работает в приложении, это вопрос о конкретной проблеме внедрения ... – OverlappingElvis

ответ

1

Насколько я понимаю ваше сообщение, пользовательский тип «Супервизор» имеет конкретный адрес электронной почты и пароль, другой тип пользователя «подчиненный» не имеет специального пароля для электронной почты.

Существует аналогичный сценарий в методе входа модели UserIdentity. Если пользователь регистрируется в системе с учетной записью социальной сети, модель UserIdentity создает учетную запись для этого анонимного пользователя.

Например, если пользователь входит в систему с учетной записью google. Затем модель использует идентификатор google пользователя (внешний идентификатор в модели), создает имя пользователя на основе идентификатора пользователя.

Проверьте профильТолько метод в модели. Метод Login использует метод profileToUser. Вы можете найти полезные вещи для своего сценария.

function profileToUser(provider, profile) { 
    // Let's create a user for that 
    var email = profile.emails && profile.emails[0] && profile.emails[0].value; 
    if (!email) { 
    // Fake an e-mail 
    email = (profile.username || profile.id) + '@loopback.' + 
      (profile.provider || provider) + '.com'; 
    } 
    var username = provider + '.' + (profile.username || profile.id); 
    var password = utils.generateKey('password'); 
    var userObj = { 
    username: username, 
    password: password, 
    email: email 
    }; 
    return userObj; 
} 
Смежные вопросы