错误刷新会话“JSON文本没有以数组或对象和选项开始,以允许片段没有设置。

尝试在60分钟限制后刷新访问令牌。 运行本地节点服务器。 为了给出上下文,我已经成功地从spotifyauthentication端点返回了以下数据。 目前存储会话在NSUserdefaults,不知道如果我必须将刷新令牌存储在另一个位置..

Swap: tokenData { access_token: 'BQAzWk7KjBMtKLzuVtpstw0XWmRww6zs2j6TxoObMRh4P-cxW6SHQqnZWeBD9bE38Xz6ZUNlFdG-EVeTtHwgoRwA9GAqaooaQP5k4gFkEVCbhLcdGVc_IZjO1JH91FmB2O-l-YHeJqC9DzUIF7wWWCGfAxk2SJ2QFNkP4Mp13PXc9IlsnHnu-B9nfZaWYDoHDf4', token_type: 'Bearer', expires_in: 3600, refresh_token: 'AQDmPiRX9WGwShK9aIVybZlG1qJyv0avmgZedUwfvz0hGGo5dheMKSpteVRCIItzt_l4gIflHPnFzLrxLmZNKSserU7ng8_3sSJPhdsibdskjbdkjbdkUDrOC4ZbEGPWNcJlmZgl4A' } 

当会话在Xcode中过期时,我在XCode中触发这个函数

 if !session.isValid() { SPTAuth.defaultInstance().renewSession(session, withServiceEndpointAtURL: NSURL(string: tokenRefreshServiceURL), callback: { (error:NSError!, renewedsession:SPTSession!) 

哪个指向这个..

 app.post("/refresh", function(req,res){ console.log(req.body); if(!req.body || !req.body.hasOwnProperty("refresh_token")) { res.status(550).send("Permission Denied"); //THE BODY DOES NOT CONTAIN THE REFRESH TOKEN return; } var encryptedToken = new Buffer(req.body.refresh_token, 'base64');//switched the underscore var refresh_token = req.body.refresh_token; console.log("refresh: refresh_token: %s", refresh_token); var formData = { "grant_type": "refresh_token", "refresh_token": refresh_token }; console.log("refresh: POSTing request to %s:", url.resolve(config.endpoint, "/api/token"), formData); request.post({ url: url.resolve(config.endpoint, '/api/token'), headers: { "Authorization": AUTH_HEADER, "Content-Type": "application/x-www-form-urlencoded" }, form: formData }, function(err, response, body) { if(err) { console.log("refresh: error: %s", err); res.status(550).send("Internal Server Error"); return; } if (response.statusCode != 200) { console.log("refresh: response: %s", response.statusCode); res.status(550).send("Permission Denied"); return; } console.log("refresh: body: %s", body); res.status(response.statusCode).set({ "Content-Type": "application/json" }).send(body); }); }); 

在Xcode中收到以下错误: Error Refreshing Token: JSONError refreshing session Error Domain=NSCocoaErrorDomain Code=3840 "JSON text did not start with array or object and option to allow fragments not set."}

不知道我是否需要将刷新令牌存储在某个地方? 我将所有会话存储在NSUser默认值中。

       

网上收集的解决方案 "错误刷新会话“JSON文本没有以数组或对象和选项开始,以允许片段没有设置。"