我已经将Force.com Toolkit用于.NET很长时间了。最近,一位客户开始投诉会话无效问题。因此,我开始进行挖掘,发现我必须通过调用 TokenRefreshAsync 来刷新令牌,为此我需要传递在身份验证过程中获得的刷新令牌。但是我从SF获取空刷新令牌。
我尝试了在互联网上发现的所有可能的事情,但没有成功。 随时代表您执行请求(refresh_token,offline_access):
刷新令牌的有效期限设置为2天:
这是我用来验证的简单代码:
var task = authClient.UsernamePasswordAsync(consumerKey, consumerSecret, username, password, callback);
task.Wait();
我在这里想念什么?
答案 0 :(得分:2)
无论范围如何,Username-Password Oauth Flow均未在Salesforce上提供刷新令牌:
此OAuth身份验证流程来回传递用户的凭据。仅在必要时使用此身份验证流程。没有发出刷新令牌。
如果您需要刷新令牌,则需要实施其他OAuth流(首选!),或者避开刷新令牌并在访问令牌过期时重新进行身份验证。后者使您容易受到身份验证用户的凭据和安全性令牌更改的影响,但是,使用更合适的OAuth流可以授予针对此更改的弹性。