我爲我的應用使用了Facebook登錄。我能夠成功完成登錄,但當我刷新頁面session.isAuthenticate
變得未定義。爲什麼會話服務在使用torii時在餘燼中刷新後沒有定義
我認爲持久會話的邏輯保持在torii-adapter的獲取方法中。下面是我的torii-adaptor,請告訴我缺少什麼。
import Ember from 'ember';
import {createToken} from 'myapp-new/utils/myapp-utils';
//import User from 'myapp-new/user/model';
export default Ember.Object.extend({
store: Ember.inject.service(),
session: Ember.inject.service('session'),
fetch(){
let token = session.token;
if(Ember.isEmpty(token)){
throw new Error("No session found");
}
else{
return Ember.RSVP.resolve({token});
}
},
open: function(authentication){
let authorizationCode = authentication.authorizationCode;
let token = createToken();
let adapter = this;
return new Ember.RSVP.Promise(function(resolve, reject){
console.log(authentication);
Ember.$.ajax({
url: 'http://myapp.com/getUserInfoWuthAuthCode.php',
//url:'http://localhost:4200',
data: { 'code': authorizationCode,token:token},
success: Ember.run.bind(null, resolve),
error: Ember.run.bind(null, reject)
});
}).then(function(data){
let user = data.user[0];
return {
token:token,
user: user
};
});
}
});
UPDATE 下面是我的路線
import Ember from 'ember';
export default Ember.Route.extend({
session: Ember.inject.service('session'),
actions:{
signIn(){
console.log("Working");
this.get('session').open('google-oauth2').then(function(){
console.log("Login Worked");
}, function(error){
console.log('error', 'Could not sign you in: '+error.message);
});
}
},
setupController(controller, model){
controller.set('session', this.session);
}
});
的代碼,我不使用任何組件,因此只能內部航線掛鉤會話。 有一點需要注意的是迎接我的牌坊適配器的方法是沒有得到根本叫(應該叫上刷新的,不是嗎?)
問題不會與會話代碼(無論如何,這是錯誤的,謝謝糾正)。但是在我的組件(hbs文件){{session.isAuthenticated}}刷新後未定義。 –
您是否在'controller'中有'session'至少是生成的控制器? –
我在我的路由中注入了會話,登錄後{{session.isAuthenticated}}的計算結果爲true,但刷新後未執行。關於它的事情是我的適配器的獲取方法根本沒有被調用。可能是我錯過了一些東西 –