0

我在我的原生 iOS 应用和 Android 应用上都使用了 Salesfroce SDK。我试图涵盖用户失去会话并且我想重新登录他而无需再次通过登录屏幕的情况。

我在 iOS 中找到了正确的解决方案:

SFAuthenticationManager.sharedManager().loginWithCompletion({ (authInfo : SFOAuthInfo!) -> Void in
        print("successfuly re-authenticated")
        if (!NSThread.currentThread().isMainThread) {
            dispatch_async(dispatch_get_main_queue(), { () -> Void in
                self.loadLoggedInWebView()
            })
        }
        else {
            self.loadLoggedInWebView()
        }
    }) { (authInfo : SFOAuthInfo!, error: NSError!) -> Void in
        print("re-authenticated failed")
}

不幸的是,我找不到代码的 Android 替代品。在Android中这样做的正确方法是什么?谢谢。

4

1 回答 1

1

这是我从 Salesforce SDK 中得到的。

SalesforceSDK OAuth2.java 使用所需参数调用这些方法之一

public static TokenEndpointResponse refreshAuthToken(
            HttpAccess httpAccessor, URI loginServer, String clientId,
            String refreshToken) {....}
//AND

public static TokenEndpointResponse refreshAuthToken(
            HttpAccess httpAccessor, URI loginServer, String clientId,
            String refreshToken, String clientSecret) {......}

结果TokenEndpointResponse.authToken是您的新身份验证令牌。
重要提示:如果上述调用抛出OAuthFailedException意味着刷新令牌无效(已撤销)

于 2016-03-10T12:15:49.670 回答