回送进行经过身份验证的请求/访问令牌管理

时间:2018-11-05 10:23:23

标签: angular rest ionic3 loopback

我一直在关注Loopback身份验证文档,所有内容都很简单明了。 通过POST创建用户,也通过POST登录。

但是在那之后,我陷入了如何获取访问令牌并将其添加到其他请求的困境。 在资源管理器端,您只需将其复制/粘贴到令牌文本框中,然后单击设置令牌。 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应用程序。

2 个答案:

答案 0 :(得分:0)

环回中的身份验证非常透明,这很棒,需要花费一些时间来掌握它。

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

这可与Role,(doc here)配合使用,因此,基本上,您不必告诉自己环回用户的类型(角色),而可以自己进行管理,而无需自己进行全部管理在您的应用(ACL)中查看和执行。

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

编辑

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

的名称登录时,将获取令牌。
{
  "id": "LZQB7CmC7pYrk6vz7Ghf9MaIFRQYmnouKFxjolZE5GP6XqLal53fyLg475a8PTC8",
  "ttl": 1209600,
  "created": "2018-11-05T11:31:12.110Z",
  "userId": "5b8e7a47c6f12d00c5d6db29"
}

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

答案 1 :(得分:0)

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