如何使用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