2016-11-09 30 views
1

我从React sample application from Auth0开始,并通过Auth0登录工作正常,但没有给我预期的标记。为什么我的Auth0 id_token不包含关于用户的任何信息?

登录后,浏览器localStorage包含一个id_token和一个配置文件对象。当我解码id_token我看到有效载荷包括这样的事情:

{ 
    "iss": "https://mycompany.eu.auth0.com/", 
    "sub": "auth0|5821bc27f92ca3261c628a26", 
    "aud": "2A8cgDBm86kLCtCNtUMcKPL2G3oqjIdE", 
    "exp": 1478755859, 
    "iat": 1478719859 
} 

该配置文件包含从用户配置文件的电子邮件和许多其他的好东西作为Auth0注册。

我需要解析令牌到我的API服务器,因此我需要来自profile-object的属性成为令牌的一部分。我如何使id_token包含所有这些属性,以便我可以在我的API服务中解析它并在用户第一次登录时存储它?

当我看到它,我不能,因为它需要通过Auth0签署,以便我的API服务器信任的信息,请使用浏览器的localStorage找到的profile对象。

我也知道我可以使用id_token从我的API服务器直接向Auth0发出请求以获取此附加信息,但我认为如果信息由令牌。

回答

2

这些是默认包含在id_token;可以通过传递scope参数以适当的值来请求包含其他声明。

请参阅Scopes - Requesting specific claims,以便参考您可以在scope参数中通过哪些参数以影响id_token的内容。

0

要添加到JoãoAngelo的答案,您不能请求范围内的整个“App_Metadata”对象。如果有特定于应用的字段,例如朗或最喜欢的颜色,这些都必须专门调出。

示例程序的元数据 enter image description here

调用示例

https://example.auth0.com/authorize 
 
    ?response_type=token 
 
    &client_id=YOUR_CLIENT_ID 
 
    &redirect_uri=http://jwt.io&connection=google-oauth2 
 
    &scope=openid+lang+favoriteColor

可能有额外的警告到scope parameter,这将是很好的问Auth0如您遇到问题

相关问题