Strongloop / Loopback:如果多个模型扩展内置用户模型,如何登录

时间:2015-07-26 03:46:02

标签: authentication model strongloop

我刚刚开始使用Strongloop框架开发,我已经看到你可以扩展基本的内置模型,比如User模型。例如:患者模型可以扩展用户模型。因此,基本用户信息和服务将从用户模型自动扩展,并且可以通过患者模型请求登录,注销等(例如:Patient.login(凭证))。

但是,如果我有多个从用户模型扩展的模型(例如:Physicion,Admin和Patient),如何从用户模型执行远程方法而不知道我必须执行三个模型中的哪一个?例如,如果我有一个Patient帐户,我可以请求Patient.login(凭据),Strongloop将正确登录。另一方面,在登录页面,我不知道患者或Physicion用户是否输入了他/她的凭证。所以,我不知道我必须调用哪种登录方法:if Patient.login或Physicion.login。远程方法User.login在我的情况下不起作用。如何在不事先知道用户类型的情况下请求登录?

2 个答案:

答案 0 :(得分:1)

如果您正在扩展用户模型,那么它应该无关紧要,因为它们将在数据库中查找相同的身份验证令牌并在loopback/common/models/User.js中执行相同的确切代码,它们的名称将不同。< / p>

但是在更大的图片中,您应该通过他们的识别信息(电子邮件等)跟踪您正在处理的用户类型,而不是他们将访问的子模型/模型类。在拨打正确的电话之前,您应该知道这一点。

查看Role模型和RoleMapping模型。例如,您可以创建患者,医生和管理员角色,然后将其映射到用户,然后使用单个模型(用户)进行登录。

如果您的医生也是患者,该怎么办?或者也是管理员的医生?使用角色,您可以使用单个用户模型对其进行管理,然后了解要使用的子模型。

答案 1 :(得分:0)

在与IBM-StrongLoop Loopback 3一起工作了一段时间之后,决定建立此入门程序来构建多用户模型api。请检查一下。 Multi-User API Starter。它是完全免费的,并且可以为您完成所有繁重的工作。

您需要做的就是让您的CustomUser模型(即患者,医生,医师等)扩展到启动器中存在的BaseUser。对于ACL中的基于角色的权限,您可以查看启动器Loopback Multi-User Based Auth and Role-Based ACL的所有用法示例……