Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用Azure AD生成自定义访问令牌_Node.js_Azure Active Directory_Authorization_Next.js_Azure Authentication - Fatal编程技术网

Node.js 使用Azure AD生成自定义访问令牌

Node.js 使用Azure AD生成自定义访问令牌,node.js,azure-active-directory,authorization,next.js,azure-authentication,Node.js,Azure Active Directory,Authorization,Next.js,Azure Authentication,我正在尝试开发一个Next.js应用程序,在该应用程序中,用户可以使用他/她的azure id登录。之后,来自该令牌的电子邮件和其他详细信息应在我的Node.js后端进行验证,并应将自定义令牌发送到前端以进行进一步的身份验证和授权。有没有人能帮助我使用哪些库以及它们的流程?我是Web应用程序开发的初学者,这是我第一次处理身份验证/授权场景。任何帮助都将不胜感激:)电子邮件声明是可选声明,您可以参考此内容了解如何获取电子邮件和其他可选声明。一旦用户通过身份验证,您就可以通过.getAccount(

我正在尝试开发一个Next.js应用程序,在该应用程序中,用户可以使用他/她的azure id登录。之后,来自该令牌的电子邮件和其他详细信息应在我的Node.js后端进行验证,并应将自定义令牌发送到前端以进行进一步的身份验证和授权。有没有人能帮助我使用哪些库以及它们的流程?我是Web应用程序开发的初学者,这是我第一次处理身份验证/授权场景。任何帮助都将不胜感激:)

电子邮件声明是可选声明,您可以参考此内容了解如何获取电子邮件和其他可选声明。一旦用户通过身份验证,您就可以通过.getAccount().idTokenClaims.email获取登录用户的电子邮件声明,您可以从已登录用户的idTokenClaims属性获取所有其他声明。NPM软件包上有多个自定义JWT令牌生成器,您可以使用idTokenClaims生成如下自定义令牌,并将其发送到前端

const jwt = require('njwt')
  const claims = { iss: 'fun-with-jwts', sub: 'AzureDiamond' , mail : idTokenClaims.email , ...fill other claims that you need...}
  const token = jwt.create(claims, 'top-secret-phrase')
  token.setExpiration(new Date().getTime() + 60*1000)
  res.send(token.compact())

您可以找到Microsoft为您的后端和前端应用程序提供的所有相关软件包

谢谢!这个流程和文档以及github上的示例帮助很大!