我想使用Loopback护照通过第三方登录我的应用程序.但是,我希望能够仅允许那些已经将电子邮件配置为用户访问权限的帐户(即我希望将此提供商的人员列入白名单),而不是让任何人成功通过第三方进行身份验证.
这可能吗?几乎所有我用Loopback护照和OAuth以及类似策略看到的例子似乎都假设我很高兴每个Google / Facebook用户都可以访问我的应用程序,而这不是我的情况.
最佳答案
loopback-example-passport存储库扩展了一些基本模型(User,AccessToken,UserIdentity和UserCredential).
您可以创建一个新文件/common/models/user-identity.js,它可以监听何时创建新身份.在那里尝试这样的事情:
module.exports = function(userIdentity) {
userIdentity.observe('before save', function(context, next) {
if (context.instance) {
console.log(context.instance.profile._json);
}
}
}
在context.instance.profile._json中,您可以观察新创建的用户的详细信息,修改其详细信息或在需要时将其删除.