向用户授权其Dynamics 365环境时,我需要通过OAuth获得长寿的刷新令牌。但是,当我发出请求时,没有返回refresh_token值。
这是我用于OAuth请求的URL格式。
https://login.microsoftonline.com/common/oauth2/authorize?resource={Uri.EscapeDataString(options.field1)}&client_id={clientid}&response_type=code&redirect_uri={Uri.EscapeDataString(redirectUrl)}
它正确地调用了我的回调URL,然后我使用“ authorization_code”的grant_type交换了访问令牌的“ code”。请注意,没有刷新令牌。
我已经为“应用程序注册”配置了Azure权限:
答案 0 :(得分:1)
我真的知道了。该URL需要格式化为第2版URL,而在第2版中没有“ resource”参数,但是您可以在“ scopes”参数中传递资源。
https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize?client_id={clientid}&response_type=code&redirect_uri={Uri.EscapeDataString(redirectUrl)}&scope={Uri.EscapeDataString("offline_access https://xxx.crm.dynamics.com/user_impersonation")}