Hi,
I am using REST API in AS3 programming.
When I logout user, logout is successful.
On successfull logout, I am clearing any local shared objects that store user token and other user data locally.
But when I login again I get this error {“code”:3064,“message”:“Not existing user token. Relogin user to update your user token”}.
If I quit the app and login again then login is successful.
I am wondering why I am getting following error?
Will be thankful of any guidance.
Below given is code I am using.
Thanks,
Tushar
public static var headers:Array = [
new URLRequestHeader('application-id', '2C268F11-55C9-113B-FF15-F291A39B4400'),
new URLRequestHeader('secret-key', <app secret key>),
//new URLRequestHeader('application-type', 'REST'),
new URLRequestHeader(Backendless.HDR_APP_TYPE, Backendless.APP_TYPE)
]
public function Backendless() { }
public static function Call(url: String, method: String, params: Object = null, success: Function = null, error: Function = null, token: String = null): void {
var ldr: URLLoader = new URLLoader();
var req: URLRequest = new URLRequest(url)
if (params != null) {
if (method == URLRequestMethod.GET) {
var vars: URLVariables = new URLVariables()
for (var p: String in params) {
vars[p] = params[p];
}
req.data = vars;
} else {
trace("request data:", JSON.stringify(params))
req.data = JSON.stringify(params)
}
}
//trace("method :: " + method);
req.method = method;
if(method != URLRequestMethod.DELETE){
req.contentType = Backendless.CONT_TYPE;
}
req.cacheResponse = true;
req.useCache = true;
req.requestHeaders = headers
if (token != null) {
req.requestHeaders.push(new URLRequestHeader('user-token', token))
}
var parseData:Function = function(e:Event):void{
var data:Object
trace('loader data: ', e.target.data)
if (e.target.data == '' || e.target.data is Boolean) {
trace('loader data is empty or boolean')
success(e.target.data)
}else{
trace('loader data seems JSON string')
data = JSON.parse(e.target.data)
for(var s:String in data){
trace(s, '::', data)
}
}
if(data != null){
if(data.hasOwnProperty("message") && data.hasOwnProperty("code")){
trace('loader data is error message')
if(error != null){
error(data["message"])
}
}else{
trace('loader data is success object')
success(data)
}
}
}
if (success != null) {
ldr.addEventListener(Event.COMPLETE, parseData, false, 0, true)
}
ldr.addEventListener(IOErrorEvent.IO_ERROR, function(ev:IOErrorEvent):void{
trace('IO error', ev.text)
}, false, 0, true)
// Debug ----------------->
ldr.addEventListener(HTTPStatusEvent.HTTP_RESPONSE_STATUS, function (e:HTTPStatusEvent) {
trace(e.status)
for each(var r:URLRequestHeader in e.responseHeaders){
trace("request header:: ", r.name, " : ", r.value)
}
}, false, 0, true)
// <-----------------------
ldr.load(req)
}
public static function SignOut(userToken: String, success: Function = null, error: Function = null): void {
var url: String ='https://api.backendless.com/' + 'v1' + '/users/' + 'logout'
Backendless.Call(url, URLRequestMethod.GET, null, success, error, userToken);
}