node.js - Error Refreshing Session "JSON text did not start with array or object and option to allow fragments not set." -
trying refresh access tokens after 60 min limit. running local node server. give context, have returned following data spotify authentication endpoint. storing session in nsuserdefaults, not sure if have store refresh token in location..
swap: tokendata { access_token: 'bqazwk7kjbmtklzuvtpstw0xwmrww6zs2j6txoobmrh4p-cxw6shqqnzwebd9be38xz6zunlfdg-evetthwgorwa9gaqaooaqp5k4gfkevcbhlcdgvc_izjo1jh91fmb2o-l-yhejqc9dzuif7wwwcgfaxk2sj2qfnkp4mp13pxc9ilsnhnu-b9nfzawydohdf4', token_type: 'bearer', expires_in: 3600, refresh_token: 'aqdmpirx9wgwshk9aivybzlg1qjyv0avmgzeduwfvz0hggo5dhemksptevrciitzt_l4giflhpnfzlrxlmznksseru7ng8_3ssjphdsibdskjbdkjbdkudroc4zbegpwncjlmzgl4a' }
when session expired in xcode, trigger function in xcode
if !session.isvalid() { sptauth.defaultinstance().renewsession(session, withserviceendpointaturl: nsurl(string: tokenrefreshserviceurl), callback: { (error:nserror!, renewedsession:sptsession!)
which points this..
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 not contain refresh token return; } var encryptedtoken = new buffer(req.body.refresh_token, 'base64');//switched 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 %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); }); });
receive following error in xcode: error refreshing token: jsonerror refreshing session error domain=nscocoaerrordomain code=3840 "json text did not start array or object , option allow fragments not set."}
not sure if have store refresh token somewhere? store sessions in nsuser defaults.
Comments
Post a Comment