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

How to get user.email in server using auth0 and node.js?

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

  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。我也想看看邮件。

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

您可以在 req.user 中获取个人资料信息,方法是在您的用户最初登录时包含电子邮件权限。

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

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