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 に答える