I'm using facebook login for my app. I am able to complete login successfully but when i refresh the page session.isAuthenticate
becomes undefined.
I think the logic to persist the session stays inside fetch method of torii-adapter. Below is my torii-adapter and please tell me what is missing.
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 Below is code of my route
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);
}
});
I'm not using any component hence hooking session inside route only. One thing to note about is fetch method of my torii-adapter is not getting called at all (it should be called on refresh, isn't it?)
The Torii session variable should be set in the config file like this:
This will inject the service variable to your routes among others. Also with each refresh of the app the session is closed, to avoid this use the beforeModel hook of your route, something like this: