我正在为nodejs项目调用node-auth0 sdk。
auth0.getProfile(accessToken, function (err, userInfo) {
if (err) {
res.status(400).json(err)
}
console.log(userInfo);
});
如果我想通过访问令牌获取user_id,我该怎么办?
答案 0 :(得分:1)
在屏幕截图中,sub
声明(主题)是user_id
。请确认您的预期user_id
是否应为facebook|1
。
您需要使用
解析String 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);
});
仅限FYI - 因为您正在处理String对象,所以当您调用sub
时,您获得了对已弃用的String sub
prototype function的引用,可以理解这种混淆。如果您不确定Object的类型,检查的好方法是console.log(typeof userInfo);