如何使用auth0和node.js在服务器中获取user.email?

在我的前台,我可以通过以下方式看到电子邮件:

console.log(auth.profile.email) 

然后我调用这个服务来从后端检索一些信息,它是受保护的,所以你需要login以取回任何东西:

 var metadata_req = { method: "GET", url: "http://localhost:80/protected/all/metadata" } 

在后端,我正在使用node.js,并在做请求之前validation用户是否已login。

 var jwtCheck = express-jwt({ secret: new Buffer(config.secret, 'base64'), audience: config.client_id }); 

但是如果我打印req.user,我只能看到iss,sub,aud,exp和iat。 我也希望看到电子邮件。

您可以通过在用户最初login时包含电子邮件许可权来获取req.user的个人资料信息。

例如,在angular中使用锁看起来像这样:

 auth.signin({ authParams: { scope: 'openid email' } }, function(profile, token) { // stuff }, function(err) { // error handling }); 

将您的API定义从"all/metadata"更改为"all/metadata/:emailId"

调用你的API

 var metadata_req = { method: "GET", url: "http://localhost:80/protected/all/metadata/{your_email_id}" } 

在NodeJS中,从req.params.emailId检索你的req.params.emailId