import Ember from "ember"; import DS from 'ember-data'; import Session from "simple-auth/session"; // This is pulled straight from ember-cli-simple-auth-token function getTokenData(token) { var tokenData = atob(token.split('.')[1]); try { return JSON.parse(tokenData); } catch (e) { return tokenData; } } var CustomSession = Session.extend({ currentUser: function() { let token = this.get('secure.token'); if (!Ember.isEmpty(token)) { let t = getTokenData(token); return DS.PromiseObject.create({ promise: this.container.lookup('store:main').find('user', t['sub']) }); } return null; }.property('token') }); export default { name: "custom-session", before: "simple-auth", initialize: function(container, application) { application.register('session:custom', CustomSession); } };