webentwicklung-frage-antwort-db.com.de

Analysiere ungültiges Sitzungstoken (Code: 209, Version: 1.7.1)

Ich habe gerade sowohl mein Parse- als auch mein Facebook-SDK (1.7.1 bzw. 4.0) aktualisiert - beide waren ein absolutes Problem für die Arbeit, könnte ich hinzufügen!

Allerdings erhalte ich jetzt 209 Fehler, wenn ich versuche, mich mit Facebook anzumelden.

Hier ist ein Beispiel für meinen Code:

- (void)loginWithFacebook:(HMSuccessBlock)completion{
NSArray *permissionsArray = @[@"user_about_me",@"user_location",@"user_friends",@"user_relationships"];

// Login PFUser using Facebook

[PFFacebookUtils logInInBackgroundWithReadPermissions:permissionsArray block:^(PFUser *user, NSError *error) {
    if (!user) {
        NSLog(@"Uh oh. The user cancelled the Facebook login.");
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Log In Error"
                                                        message:error.localizedDescription
                                                       delegate:nil
                                              cancelButtonTitle:nil
                                              otherButtonTitles:@"Dismiss", nil];
        [alert show];
        completion(NO, error);

    } else if (user.isNew) {
        NSLog(@"User signed up and logged in through Facebook!");
        if (completion) {
            completion(YES, nil);
        }
    } else {
        NSLog(@"User logged in through Facebook!");
           completion(YES, nil);
    }
}];
}

Was den folgenden [Fehler] ergibt: ungültiges Sitzungstoken (Code: 209, Version: 1.7.1)

Mein erster Gedanke ist, dass das Problem etwas mit meinem Code im App-Delegaten zu tun hat - auf ältere Versionen von facebooksdk würde ich den folgenden Code anwenden

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [FBAppCall handleOpenURL:url
              sourceApplication:sourceApplication
                    withSession:[PFFacebookUtils session]];
}

Jedoch kann ich nichts finden, um dieses in der aktualisierten Version zu replizieren, folglich ist mein Code

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [[FBSDKApplicationDelegate sharedInstance] application:application
                                                      openURL:url
                                            sourceApplication:sourceApplication
                                                   annotation:annotation];
}

Jede Hilfe wäre sehr dankbar.

31
user499846

Bei einigen der Antworten handelte es sich um vorübergehende Korrekturen. Das Problem könnte jedoch später erneut auftreten, wenn sich ein Benutzer abgemeldet und versucht hat, sich erneut anzumelden. Ich glaube, dies lag daran, dass ich auch anonymen Benutzern die Freigabe erteilt habe [pfuser logout] vor dem einloggen

7
user499846

Löschen Sie die App vom Simulator oder Ihrem Telefon, erstellen Sie sie neu und führen Sie sie erneut aus. Manchmal wird ein altes Token zwischengespeichert. Ich habe dieses Problem gerade für meine App gelöst.

34
Ronaldoh1

Schauen Sie sich diese Seite an: https://parse.com/tutorials/session-migration-tutorial

Höchstwahrscheinlich hat Ihre App Legacy-Sitzungstoken verwendet. Sie können zu widerrufbaren Sitzungstoken migrieren, indem Sie dies Ihrem App-Delegaten unmittelbar nach dem Festlegen der App-ID und des Clientschlüssels hinzufügen.

    [PFUser enableRevocableSessionInBackground];

Die Website von Parse enthält einen Abschnitt zur Behandlung dieses Fehlers, der Ihnen möglicherweise weiterhelfen kann: https://www.parse.com/docs/ios_guide#sessions-handleerror/iOS

18
Mohssen Fathi

Ich denke, da müssen noch einige Schritte befolgt werden:

  1. Sie müssen [FBSDKAppEvents activateApp] In applicationDidBecomeActive einfügen.

  2. Du solltest schreiben
    return [[FBSDKApplicationDelegate sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions]; In Methode didFinishLaunchingWithOptions in AppDelegate.

Die obigen Schritte sollten für Sie funktionieren.

2
R_Developer

Bei widerrufbaren Sitzungen kann Ihr aktuelles Sitzungstoken ungültig werden, wenn das entsprechende Sitzungsobjekt aus der Parse Cloud gelöscht wird. Dies kann passieren, wenn Sie eine Session Manager-Benutzeroberfläche implementieren, mit der sichBenutzer von anderen Geräten abmelden könnenoder wenn Siemanuell löschendie Sitzung über Cloud Code, REST API oder Data Browser. Sitzungen können auch aufgrund eines automatischen Ablaufs gelöscht werden (falls in den App-Einstellungen konfiguriert). Wenn das Sitzungstoken eines Geräts nicht mehr einem Sitzungsobjekt in der Parse Cloud entspricht, schlagen alle API-Anforderungen dieses Geräts mit "Fehler 209: Ungültiges Sitzungstoken" fehl.

1
Yogesh Bangar