Auth0 getProfile不返回user_id

我正在为我的nodejs项目调用node-auth0 sdk。

auth0.getProfile(accessToken, function (err, userInfo) { if (err) { res.status(400).json(err) } console.log(userInfo); }); 

返回的userInfo不包含user_id 在这里输入图像描述

如果我想通过访问令牌获取user_id,我该怎么办?

在你的屏幕截图中, sub索赔(subject)是user_id 。 请确认您的预期user_id是否应为facebook|1

您需要使用parsingString JSON对象

 const userId = JSON.parse(userInfo)['sub']; 

这里是工作示例:

 var AuthenticationClient = require('auth0').AuthenticationClient; var auth0 = new AuthenticationClient({ domain: '{TENANT}.auth0.com', clientId: '{client id}' }); const accessToken = '{access token}'; auth0.getProfile(accessToken, function (err, userInfo) { const userId = JSON.parse(userInfo)['sub']; console.log(userId); }); 

仅供参考 – 因为你正在处理一个String对象,所以当你调用sub你会得到一个对已弃用的String sub原型函数的引用可以理解混淆。 如果您不确定Object是什么types,检查的一个好方法就像console.log(typeof userInfo);