Auth0 - 规则&团体&&用户管理

时间:2017-01-10 18:49:15

标签: node.js express jwt auth0 express-jwt

我已经使用Auth0创建了一个帐户,我正在尝试将Angular 2简单登录到我们的后端API。

1。我要做的是能够访问API中的角色以查看用户是否具有正确的权限。

我启用了Auth0授权扩展,我已经进入并创建了一个组和一个角色,我已将这些分配给我创建的测试用户,然后我转到配置并发布了令牌内容的规则和持久性。

如何在nodejs app中查看JWT的权限/组?我正在使用express-jwt而且:

const authenticate = jwt({
  secret: config.get('AUTH0_CLIENT_SECRET'),
  audience: config.get('AUTH0_CLIENT_ID'),
  credentialsRequired: false,
});

这给了我详细信息,例如iss,sub,aud。但是没有关于用户元数据的细节,我如何能够检索到这个?另外,由于我之前显然没有使用过Auth0,最好将用户详细信息存储在我们自己的数据库中,以便我可以使用自己的ID来存储用户操作,或者如果Auth0给出一个ID,是否可以使用ID存储在我们的数据库中的用户操作。

编辑1

好的我可以看到Lock有一个选项参数你可以通过范围,登录时请求这些是不好的做法吗?现在只有少数几个团体/角色。或者更好的是,API可以使用提供的令牌查找用户以获取app_metadata以查看权限等,如果是这样,我该如何查看?

2。我如何管理用户并查看它们,以便我可以在我们自己的管理面板中显示它们并管理它们拥有的权限。

1 个答案:

答案 0 :(得分:0)

对于令牌本身(groupsroles声明)中的群组和角色信息可用的情况,并且假设您正在使用express-jwt,那么您可以通过访问:

在服务器端访问此信息
req.user.groups
req.user.roles

从本质上讲,express-jwt会使req.user对象中的令牌中包含的声明可用。

对于用于标识用户的ID,您可以使用用户令牌的sub声明中包含的值。此值保证唯一且稳定,因此以完全相同的方式使用身份验证的定期用户在sub声明中始终具有相同的值。

您已经发现包含组和角色信息的一种方法是通过scope参数请求它。要求将此信息包含在令牌中并不是一种不好的做法,但是,您需要考虑通过SPA使用的隐式授权提供的令牌作为回调URL的一部分包含在内,因此,他们的最大尺寸受到对URL的限制。

关于第二个问题,您可以通过集成Auth0授权扩展API和Auth0 Management API来实现自己的管理后端;有关详细信息,请参阅以下链接: