[英]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.