3

我在使用 Spotify beta 9 时遇到问题。所有关于保存 SPTSession 和使用 RefreshTokenURL 更新(刷新)的教程似乎都已淘汰。这就是我获得 AuthViewController 的方式......

        let spotifyAuthenticationViewController = SPTAuthViewController.authenticationViewController()
        spotifyAuthenticationViewController.delegate = self
        spotifyAuthenticationViewController.modalPresentationStyle = UIModalPresentationStyle.OverCurrentContext
        spotifyAuthenticationViewController.definesPresentationContext = true
        presentViewController(spotifyAuthenticationViewController, animated: true, completion: nil)

现在我需要创建一个会话,保存并定期刷新。我想保存在 CoreData 中。如果您以前做过此操作或有任何好的提示,请提供帮助

4

2 回答 2

5

您必须将其存储在 NSUserDefaults 中:

SPTAuth *auth = [SPTAuth defaultInstance];
id sessionData = [[NSUserDefaults standardUserDefaults] objectForKey:auth.sessionUserDefaultsKey];
SPTSession *sessionUserDefault = [NSKeyedUnarchiver unarchiveObjectWithData:sessionData];

auth.tokenRefreshURL = [NSURL URLWithString:kTokenRefreshServiceURL];

    if (![sessionUserDefault isValid] && [auth hasTokenRefreshService]) {
        [auth renewSession:sessionUserDefault callback:^(NSError *error, SPTSession *renewedSession) {
            if (error != nil)
                [[NSNotificationCenter defaultCenter] postNotificationName:@"spotifySessionNotOK" object:renewedSession];

            if(renewedSession)
                self.session = renewedSession;

        }];
    }
    else {
        self.session = sessionUserDefault;
    }

  [auth setSessionUserDefaultsKey:auth.sessionUserDefaultsKey];
}
于 2015-08-18T12:00:53.263 回答
0

在撰写本文时,如果您auth.sessionUserDefaultKey在配置会话时设置,beta 25 会自动为您执行此操作。

然后,您可以检查有效的会话 (auth.session != nil && auth.session.isValid)

于 2017-12-31T06:35:31.433 回答