编程语言
首页 > 编程语言> > c# – 如何刷新Microsoft Graph的令牌

c# – 如何刷新Microsoft Graph的令牌

作者:互联网

我使用以下方法连接到Microsoft Graph:

public GraphServiceClient GetAuthenticatedClient(string token)
{
    GraphServiceClient graphClient = new GraphServiceClient(
        new DelegateAuthenticationProvider(
            async (requestMessage) =>
            {
                // Append the access token to the request.
                requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", token);
            }));
    return graphClient;
}

我在服务器上运行此代码.我正在使用的令牌正由外部应用程序发送给我.

在第一个小时内一切都很好,然后令牌到期.

我的问题是:如何获得新令牌,因为我也可以访问刷新令牌?

解决方法:

启用刷新令牌需要两个部分:

>您需要请求范围offline_access.这告诉端点在access_token和关联的元数据旁边提供refresh_token.
>你需要通过对/common/oauth2/v2.0/token重复相同的POST来请求一个新的access_token(和refresh_token一起) – 一个稍微不同的主体 – grant_type设置为refresh_token而不是代码,你提供refresh_token属性和值:

https://login.microsoftonline.com/common/oauth2/v2.0/token
Content-Type: application/x-www-form-urlencoded

grant_type=refresh_token&
refresh_token=[REFRESH TOKEN]&
client_id=[APPLICATION ID]&
client_secret=[PASSWORD]&
scope=[SCOPE]&
redirect_uri=[REDIRECT URI]

前段时间我写了一个你可能会觉得有用的节目primer on the v2 Endpoint.

标签:c,microsoft-graph
来源: https://codeday.me/bug/20190627/1304026.html