【问题标题】:Not getting refresh token from Salesforce未从 Salesforce 获取刷新令牌
【发布时间】:2019-05-22 10:24:31
【问题描述】:

我长期使用 Force.com Toolkit for .NET。最近,一位客户开始抱怨会话无效问题。所以我开始挖掘,发现我必须通过调用 TokenRefreshAsync 来刷新令牌,为此我需要传递我在身份验证期间获得的刷新令牌。但我从 SF 获得了 null 刷新令牌。

我已经尝试了我在互联网上找到的所有可能的东西,但没有任何成功。 随时代表您执行请求(refresh_token、offline_access)已添加到 OAuth Scopes 中:

刷新令牌有效期设置为 2 天:

这是我用来验证的简单代码:

var task = authClient.UsernamePasswordAsync(consumerKey, consumerSecret, username, password, callback);
task.Wait();

我在这里错过了什么?

【问题讨论】:

    标签: c# .net authentication salesforce


    【解决方案1】:

    Username-Password Oauth Flow 不会在 Salesforce 上提供刷新令牌,无论范围如何:

    此 OAuth 身份验证流程来回传递用户的凭据。仅在必要时使用此身份验证流程。未颁发刷新令牌。

    如果您需要刷新令牌,则需要实施不同的 OAuth 流程(最好!),或者避开刷新令牌并在访问令牌过期时重新进行身份验证。后者使您容易受到经过身份验证的用户的凭据和安全令牌更改的影响,但是,使用更合适的 OAuth 流程可以提供弹性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-11
      • 2020-01-14
      • 1970-01-01
      • 1970-01-01
      • 2014-10-26
      • 2017-03-22
      • 2021-08-25
      • 2012-05-04
      相关资源
      最近更新 更多