使用Loopback登录一次性令牌

问题描述:

我正在开发一种Loopback应用程序,它有两种类型的用户 - 一个可以在应用程序内自注册的“Supervisor”和一个只能注册的“Subordinate”由监事(并与该人有关)。主管使用电子邮件和密码登录,就像基本的用户模型在回环中一样,但下属使用生成的电子邮件和基于日期散列的密码。这是为了确保下属记录不受个人身份识别数据束缚,并且是应用程序的一项要求。下属可以使用生成的凭证登录系统,但跟踪伪随机信息是不可行的。使用Loopback登录一次性令牌

Loopback中的用户是否有任何方式获得可以用来代替用户名和密码登录从属用户类型的访问令牌(或者甚至更好,生成的令人难忘的密码)?这似乎是类似的功能登录与令牌重置密码,但我不知道如何使用可重复使用的密码做到这一点。

+1

不知道为什么这被否决 - 认证的应用程序已经工作,这是一个特定于框架的实施问题一个问题... – OverlappingElvis

据我了解您的文章,'主管'用户类型有特定的电子邮件和密码,其他用户类型'从属'没有特定的电子邮件密码。

UserIdentity模型的登录方法也有类似的情况。如果用户使用社交网络帐户登录系统,则UserIdentity模型将为该匿名用户创建一个帐户。

例如,如果用户使用Google帐户登录。然后该模型使用用户的Google ID(模型中的外部ID),根据用户ID创建用户名。

检查profileToTo模型中的使用方法。登录方法使用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; 
}