【发布时间】:2014-10-04 05:26:52
【问题描述】:
我正在使用 jsforce 节点模块在 salesforce 中进行 CRUD 操作。
为了与 salesforce 建立联系,我有以下输入
用户名、密码、securityToken 和 loginUrl。
这是我第一次建立连接的方法。
var conn = new jsforce.Connection({
loginUrl: connectionDetails.salesforce.loginUrl
});
conn.login(connectionDetails.salesforce.username,
connectionDetails.salesforce.password + connectionDetails.salesforce.securityToken,
function(err, userInfo) {
if (!err) {
console.log('User with user id ' + userInfo.id + ' successfully logged into Salesforce');
successCb(conn.accessToken, conn.instanceUrl);
} else {
console.log('Login failed to https://test.salesforce.com/');
errorCb('Login failed to https://test.salesforce.com/');
}
});
我将accessToken和Instanceurl存储在Express提供的req对象中。
之后我执行如下任何 CRUD 操作
var salesConn = new jsforce.Connection({
accessToken: salesforceAccessToken,
instanceUrl: salesforceInstanceUrl
});
salesConn.sobject('Lead').retrieve(someLeadID, function(err, data) {
...
});
现在假设我让我的服务器闲置几个小时甚至一天,然后如果我执行 CRUD 操作,那么调用就会失败。这个我很确定会话已经过期了。
现在我有两个查询
- 上述使用我拥有的输入连接详细信息与 salesforce 建立连接的方法是否正确?
- 如何知道会话已过期并创建新会话?
PS 我尝试使用 Refresh Token 查看 Access Token,但这仅适用于 OAuth2 授权代码流。
【问题讨论】:
标签: node.js salesforce