2016-08-03 3 views
0

OneDriveの問題があります。iOS OneDriveのアクセス許可UIをログアウトする方法

このサイトでOneDrive Sample Appをテストしました。 https://github.com/OneDrive/onedrive-sdk-ios

ステップ:

  1. は、ボタン 'サインイン' をクリックしました。ログインしてください。

  2. は権限UIを示しました。 「キャンセル」または「いいえ」ボタンをクリックします。 enter image description here

  3. Permission UIが閉じられています。 [サインイン]をもう一度クリックします。

  4. Permission UIが再び表示されました。

他のアカウントにログインしたい場合は、権限のUIで「はい」ボタンをクリックする必要があります。ログアウトして再度ログインします。

権限のUIで[キャンセル]または[いいえ]ボタンをクリックするとログアウトする方法。

これはコードです:

[ODClient authenticatedClientWithCompletion:^(ODClient *client, NSError *error){ 
    if (!error){ 
     self.client = client; 
     [self loadChildren]; 
     dispatch_async(dispatch_get_main_queue(), ^(){ 
      self.navigationItem.rightBarButtonItem = self.actions; 
     }); 
    } 
    else{ 
     [self showErrorAlert:error]; 
    } 
}]; 

i 'はキャンセルしない' または権限のUIにおける 'NO' ボタンをクリックしたときに、エラーがnilではありません。クライアント(ODClient)はゼロです。 その後、signoutメソッドを呼び出すことができます。 (自己です。クライアントはゼロです)

- (void)signOutAction{ 
    [self.client signOutWithCompletion:^(NSError *signOutError){ 
     self.items = nil; 
     self.items = [NSMutableDictionary dictionary]; 
     self.itemsLookup = nil; 
     self.itemsLookup = [NSMutableArray array]; 
     self.client = nil; 
     self.currentItem = nil; 
     self.title = @"OneDrive"; 
     dispatch_async(dispatch_get_main_queue(), ^(){ 
      self.navigationItem.hidesBackButton = YES; 
      self.navigationItem.rightBarButtonItem = self.signIn; 
      // Reload from main thread 
      [self.collectionView reloadData]; 
     }); 
    }]; 
} 

答えて

0

解決策が見つかりました。

[ODClient clientWithCompletion:^(ODClient *client, NSError *error) 
{ 
    if (error == nil) 
    { 
     self.client = client; 
    } 
    else 
    { 
     NSHTTPCookieStorage* storage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; 
     for(NSHTTPCookie* cookie in [storage cookies]) 
     { 
      [storage deleteCookie:cookie]; 
     } 
    } 
}]; 
関連する問題