首页 文章

JavaScript,Node

提问于
浏览
0

我正在使用Exchange客户端编写Oauth . 我在apps.dev.microsoft.com上注册了我的应用程序 . 我在Node.js上使用JavaScript . 为了执行Oauth,我使用了几种不同策略的护照,但它们似乎都不适合我 . 他们中的一些人缺少 Profiles 信息,我正在使用的最后一个不会返回访问令牌 . 我调试了lib,但我不知道我做错了什么 . 这是我正在使用的lib:

https://github.com/Azure-Samples/active-directory-node-webapp-openidconnect . 我正在使用OIDC策略 . 因此,这将返回一个配置文件obj,但访问和刷新令牌是"undefined" . 它确实返回一个授权'code'来发出令牌请求 . 重定向网址,所有其他元数据都很好,例如:prompt:'login',response_mode:'query',state:true,authorizationURL:'https://login.microsoftonline.com/common/oauth2/v2.0/authorize ', tokenURL: ' https://login.microsoftonline.com/common/oauth2/v2.0/token'

此外,客户端ID,客户端密钥和callbackURL是正确的 .

我是否错过了这个过程中必不可少的东西或MSFT oauth护照被打破了?

1 回答

  • 0

    由于护照SDK不在 user profile 中存储 accessTokenrefreshToken . 所以我们可以修改sdk文件来获取令牌 .

    我们可以在 node_modules/passport-azure-ad/lib/passport-azure-ad/oidcstrategy.js 中找到这些代码 176log.info('TOKEN RECEIVED'); log.info('Access Token: ' + accessToken); log.info(''); log.info('Refresh Token: ' + refreshToken); log.info(''); log.info(params); log.info('----'); 我们可以找到 profile229265 行中定义 . 为了方便使用,我们可以直接在 profile 中添加标记,例如,在代码 var profile = {}; 下面我们添加 profile.accessToken = accessToken; .

相关问题