2015-11-23 4 views
1

Я новичок в ember и JavaScript. Я разработал приложение ember и интегрировал логин fb в нем. Теперь мне нужно отправить login_token из входа Fb в бэкэнд приложения (post request) и получить новый токен, сгенерированный бэкэнд (django). Мне также нужно сохранить новый токен для будущего вызова на бэкэнд.Хранение ответа от ajax-звонка в ember

Сообщение запроса на ответ

{ 
    "token": "b0fb466a6eac3ad87", 
    "signup_done": true 
} 

контроллер

import Ember from 'ember'; 
/* global FB */ 

export default Ember.Controller.extend({ 
getLoginStatus: function() { 
    return new Ember.RSVP.Promise(function(resolve, reject) { 
    FB.getLoginStatus(function(response) { 
     if (response.status) { 
     resolve(response.status); 
     } else { 
     reject(); 
     } 
    }); 
    }); 
}, 
getAccessToken: function() { 
    return new Ember.RSVP.Promise(function(resolve, reject) { 
    FB.login(function(response) { 
     if (response.authResponse) { 
     console.log("accesstoken>>>>>>>>>"+response.authResponse.accessToken); 
     resolve(response.authResponse.accessToken); 
     } else { 
     reject(response); 
     } 
    }, { scope: 'email,user_photos,user_friends' }); 
    }); 
}, 

authenticate: function(accessToken) { 
    console.log("accesstoken<<<<<<<<<<<    "+accessToken); 
     Ember.$.ajax({ 
     url: 'http://example.com/api/', 
     data:{ 
      access_token: accessToken, 
      provider:'facebook' 
     }, 
     type: 'post', 
     success:function(data){ 
      console.log('data>>>'+this.get(data)); 
     } 
     }); 
    }, 

testAPI:function() { 
    console.log('Welcome! Fetching your information.... '); 
    FB.api('/me', function(response) { 
     console.log('Successful login for: ' + response.name); 
    }); 
}, 



    actions: { 
    fblogin: function() { 
     var self = this; 
     this.getLoginStatus().then(function() { 
     self.getAccessToken().then(function(accessToken) { 
      self.authenticate(accesstoken) 
      self.testAPI(); 
      console.log('success') 
      }, function(reason) { 
      console.log('failure', reason); 
      }); 
     }); 

    }, 
    carousel:function (result) { 
      var photos=result.photoThumbs 
      this.set('model.photos',photos) 
      console.log(this.get("model.results")); 
      }, 
    } 

}); 

Я могу сделать вызов AJAX бэкэнд серверу и получение response.But Не знаете, как сохранить новый маркер для будущего.

ответ

0

Если я правильно понял ваш вопрос, вы можете использовать localStorage или sessionStorage для сохранения токена для будущего использования.

$.ajax({ 
    url:url, 
    data:data, 
    success: function(res) { 
    localStorage.token = res.token; 
    sessionStorage.token = res.token; 
    } 
}); 
Смежные вопросы