通过Microsoft.Graph C#API使用从javascript获取的Office 365令牌

时间:2018-10-17 12:31:20

标签: javascript c# authentication outlook office365

我一直在寻找答案,但找不到答案。

我正在尝试将在客户端(javascript)上获得的令牌与用C#编写的后端结合起来。此组合适用于Facebook和Google API,但不适用于microsoftonline。我得到了令牌,并将其转发到服务器,但是当我尝试将其用于获取个人资料信息时,出现此错误:

{Code: InvalidAuthenticationTokenMessage: Access token validation failure.Inner error}

当我将该标记与javascript microsoft api(MicrosoftGraph.Client)一起使用时,它起作用了,并向我提供了用户信息,但是我需要在不从客户端发送它们的情况下进入服务器(我应该只发送访问令牌)。

这是我在javascript中获得重定向到我的页面的令牌的链接:   https://login.microsoftonline.com/common/oauth2/v2.0/authorize

这是我的服务器端代码,应从令牌中获取配置文件信息,但报告错误:

//accessToken is from javascript
var graphServiceClient = new GraphServiceClient(new DelegateAuthenticationProvider((requestMessage) => {
            requestMessage
                .Headers
                .Authorization = new AuthenticationHeaderValue("bearer", accessToken);

            return Task.FromResult(0);
        }));


// Get the current user's profile.
var me = graphServiceClient.Me.Request().GetAsync().Result;

可以做到吗,应该将客户机上获得的令牌与服务器api结合使用吗?

0 个答案:

没有答案