1

iOS アプリに CocoaLibSpotify を統合し、ユーザー ログインを開発しています。最初にログイン コントローラが表示され、ログインが成功すると、Rich Able がSPLoginViewController to remember credentialsで説明しているように、ユーザーの資格情報が生成されて NSDefaults に格納されます。

コードは次のとおりです。

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSMutableDictionary *storedCredentials = [defaults valueForKey:@"SpotifyUsers"];

if (storedCredentials == nil)
    [self performSelector:@selector(showLogin) withObject:nil afterDelay:0.0];
else
{
    NSString *u = [storedCredentials objectForKey:@"LastUser"] ;
    [[SPSession sharedSession] attemptLoginWithUserName:u existingCredential:    [storedCredentials objectForKey:u]];
}

-(void)session:(SPSession *)aSession didGenerateLoginCredentials:(NSString *)credential     forUserName:(NSString *)userName
{
    NSLog(@"stored credentials");
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSMutableDictionary *storedCredentials = [[defaults valueForKey:@"SpotifyUsers"] mutableCopy];

    if (storedCredentials == nil)
        storedCredentials = [NSMutableDictionary dictionary];

    [storedCredentials setValue:credential forKey:userName];
    [storedCredentials setValue:userName forKey:@"LastUser"];
    [defaults setValue:storedCredentials forKey:@"SpotifyUsers"];
    [defaults synchronize];
}

しかし、アプリを閉じて再起動すると、保存されている資格情報でログインしようとしますが、ログインは常に失敗します。

これを達成することは可能ですか、それともアプリを再起動するとセッションが無効になり、ユーザーに再度ログインするように依頼する必要がありますか?

前もって感謝します!

4

0 に答える 0