我正在使用ZKForce将Sales Force集成到我的应用中。直到现在我成功了,但现在我遇到了关于刷新令牌的问题。
当我从我的应用程序登录销售人员时,我正在执行以下操作。
- (void)loginResult:(ZKLoginResult *)result error:(NSError *)error
{
if (result && !error)
{
NSLog(@"session id is %@",result.sessionId);
[SFAccountManager sharedInstance].coordinator.credentials.accessToken = result.sessionId;
NSLog(@"Login Successful");
}
else if (error)
{
UIAlertView *myAlertView = [[UIAlertView alloc] initWithTitle:@"Connection failed" message:@"Failed connecting to server. Please try again" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
[myAlertView show];
}
}
这里我只是设置访问令牌而不是设置刷新令牌。
我下载了示例案例备忘录应用程序,成功登录后会有以下内容。
- (void)loginOAuth:(FDCOAuthViewController *)oAuthViewController error:(NSError *)error
{
if ([oAuthViewController accessToken] && !error)
{
NSLog(@"Logged in to Salesforce");
[[FDCServerSwitchboard switchboard] setClientId:kSFOAuthConsumerKey];
[[FDCServerSwitchboard switchboard] setApiUrlFromOAuthInstanceUrl:[oAuthViewController instanceUrl]];
[[FDCServerSwitchboard switchboard] setSessionId:[oAuthViewController accessToken]];
[[FDCServerSwitchboard switchboard] setOAuthRefreshToken:[oAuthViewController refreshToken]];
NSLog(@"oauth token is %@",[oAuthViewController accessToken]);
NSLog(@"oauth token is %@",[oAuthViewController refreshToken]);
[self.splitViewController dismissModalViewControllerAnimated:YES];
[self.oAuthViewController autorelease];
// STEP 3 b - Save OAuth data after login
[self saveOAuthData: oAuthViewController];
[self didLogin];
}
else if (error)
{
[CaseMemoAppDelegate errorWithError:error];
}
}
在这里,他们正在设置刷新令牌。
那么如何从我的代码中获取该刷新令牌。请帮我。谢谢
答案 0 :(得分:0)
刷新令牌仅与OAuth流相关,而非标准登录。如果您的第一件使用标准登录(直接提交的用户名/密码),您将无法获得刷新令牌。如果您确实使用了OAuth,那么您的代码基本上可以显示您在首次登录服务器时获得的刷新令牌,并返回一个新的访问令牌(在当前版本到期时需要)。