环回发出经过身份验证的请求/访问令牌管理

Loopback Making authenticated requests / access token management

我一直在关注环回身份验证文档,一切都简单明了。 通过 POST 创建用户,也通过 POST 登录。

但在那之后我陷入了如何获取访问令牌并将其添加到其他请求的问题。 在资源管理器端,您只需在令牌文本框中 copy/paste 它并单击设置令牌。 API 边呢?在整个文档中,令牌被认为是理所当然的,并在每个方法开始时被初始化,如:

ACCESS_TOKEN=6Nb2ti5QEXIoDBS5FQGWIz4poRFiBCMMYJbYXSGHWuulOuy0GTEuGx2VCEVvbpBK

# Authorization Header
curl -X GET -H "Authorization: $ACCESS_TOKEN" \
http://localhost:3000/api/widgets

# Query Parameter
curl -X GET http://localhost:3000/api/widgets?access_token=$ACCESS_TOKEN

var USER_ID = 1;
var ACCESS_TOKEN = '6Nb2ti5QEXIoDBS5FQGWIz4poRFiBCMMYJbYXSGHWuulOuy0GTEuGx2VCEVvbpBK';
// remove just the token
var token = new AccessToken({
  id: ACCESS_TOKEN
});
token.destroy();
// remove all user tokens
AccessToken.destroyAll({
  userId: USER_ID
});

如何在有不同用户的地方实施我的应用程序。

我正在开发一个 Angular 6 应用程序和一个 ionic 3 应用程序。

loopback 中的身份验证非常透明,非常棒,需要一些时间来学习掌握它。

你应该看看ACL(访问控制),doc here.

这适用于 Role,(doc here),所以基本上,您无需自己管理所有内容,而是告诉 loopback 用户是什么类型(角色),以及该用户的类型用户可以在您的应用程序 (ACL) 中查看和执行操作。

之后,当使用访问令牌发出请求时,环回解析关联的用户及其角色,然后决定是否允许该操作。

编辑

要发送请求,请添加 access_token 作为查询参数:http://domain/endpoint?access_token=*token*。当用户通过登录端点登录时获取令牌,名称为 id

{
  "id": "LZQB7CmC7pYrk6vz7Ghf9MaIFRQYmnouKFxjolZE5GP6XqLal53fyLg475a8PTC8",
  "ttl": 1209600,
  "created": "2018-11-05T11:31:12.110Z",
  "userId": "5b8e7a47c6f12d00c5d6db29"
}

您可以将其保存在本地存储中以备后用。

对于这个特定项目(这完全是个人选择),我希望它是一个完整的 RESTful 项目,因此,没有启动脚本,也没有静态 JavaScript 定义。 因此,我不得不对 loopback 的预定义模型(User,Role,RoleMapping...)

进行一些尝试