如何使用 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
});
在我的前端,我可以通过以下方式查看电子邮件:
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
您可以在 req.user
中获取个人资料信息,方法是在您的用户最初登录时包含电子邮件权限。
例如,在 angular 中使用锁定将如下所示:
auth.signin({
authParams: {
scope: 'openid email'
}
}, function(profile, token) {
// stuff
}, function(err) {
// error handling
});