簡體   English   中英

將來自Ajax調用的響應存儲在ember中

[英]Storing the response from ajax call in ember

我是ember和JavaScript的新手,我已經設計了ember應用並將fb登錄集成到其中,現在我必須將fb登錄的access_token發送到應用后端(發布請求),並獲取新的backend(django)生成的令牌)。我還需要存儲新令牌,以供將來調用后端。

發布請求回復

{
  "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調用並獲得響應。但是不確定如何保存新令牌以備將來使用。

如果我正確理解了您的問題,則可以使用localStorage或sessionStorage保存令牌以備將來使用。

$.ajax({
  url:url,
  data:data,
  success: function(res) {
    localStorage.token = res.token;
    sessionStorage.token = res.token;
  }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM