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

时间:2016-04-01 02:46:44

标签: angularjs node.js auth0

在我的前端,我可以看到电子邮件:

  console.log(auth.profile.email)

然后我调用此服务从后端检索一些信息,它受到保护,因此您需要登录才能获得任何回复:

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

在后端,我正在使用node.js并在执行请求之前验证用户是否已登录:

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

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

2 个答案:

答案 0 :(得分:2)

您可以通过在用户最初登录时添加电子邮件权限来获取req.user中的个人资料信息。

例如,在角中使用锁定将如下所示:

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

答案 1 :(得分:0)

将您的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

中检索您的email_id