Auth0 JWT中的“Sub”声明是否始终是唯一的?

时间:2017-04-15 17:59:55

标签: jwt auth0

我只是有一个快速的Auth0问题。我看了一遍,但我越看越混乱。

在我登录时Auth0给我的JWT的有效载荷中有一个Sub声明,看起来像这个“sub”:“facebook | 123456789”。

我只是好奇sub是否总是唯一的,如果我可以将它用作我的数据库中的一种外键来将用户链接到不同的表。

1 个答案:

答案 0 :(得分:4)

sub,subject的缩写,在这种情况下是表示Auth0中用户的规范化用户配置文件的User Id。

此处, facebook | 123456789 是使用 facebook ID 管理的连接策略(在您的示例中类型为 facebook 的社交连接)用户(来自facebook)。但是,请记住,使用 facebook ,当您设置Connection时,您实际上是在建立与特定Facebook应用程序的连接 - (您在Auth0中为此配置的App ID和App Secret)连接策略)。长话短说,对于facebook类型的单一连接策略,在Auth0 Dashboard中的社交连接下定义 - 然后是的,这将是唯一的,并且可以是具有关于该用户配置文件等的丰富信息的单独数据存储的相关标识符。

请记住,如果您要在Facebook中创建另一个单独的应用程序,然后设置一个新的Auth0 facebook连接到该Facebook应用程序,并使用相同的用户登录 - 他们几乎肯定会收到不同的 sub < / strong>因为facebook userId会有所不同。例如,它可能是 facebook | 987654321