2017-01-04 84 views
0

我已经向Microsoft注册了一个Angular2应用程序,它完全在客户端访问Graph API。我启用了隐式授权流程,并且在登录和首次授权后,我能够成功获得JWT。Microsoft Graph API返回“访问令牌验证错误”

中的网址片段,甚至说,这是一个承载令牌,就像这样:

http://localhost:4200/loginRedirect#access_token={JWT_TOKEN_HERE}&token_type=Bearer&expires_in=3600&session_state={state_guid}

我重定向进行身份验证,以供参考,看起来是这样的:

window.location.href = "https://login.microsoftonline.com/common/oauth2/authorize?resource=" + encodeURIComponent('https://graph.windows.net') + "&response_type=token&client_id=" + this._config.clientId + "&redirect_uri=" + encodeURIComponent(this._config.redirectUri);

尽管包括在我的Graph API请求标题中获取的JWT:

Authorization: Bearer {JWT_TOKEN_HERE}

我得到一个401:Access Token Validation Error

我以为,因为我成功检索该令牌它告诉我是一个Bearer,它会一直努力,但不会出现这种情况。

任何人都知道我在做什么错了?

回答

1

资源URI错误。 Azure AD Graph API是https://graph.windows.net

Microsoft Graph API资源URI是https://graph.microsoft.com/,试试吧。

Azure AD Graph API是AAD的API,而Microsoft Graph API也包含Office 365服务。虽然命名混乱。

+0

如果你没有指出,我会花几个小时看看我的代码的其他部分;谢谢! –

相关问题