import ENV from “../config/environment”; import { inject as service } from '@ember/service'; import { computed } from '@ember/object';
// TODO: make cookie authentication work (computed property is shit, when used in combination with cookies) export default Ember.Service.extend({
cookies: service(), accessToken: null, authenticate(email, password) { return Ember.$.ajax({ method: "POST", url: ENV.apiHost === '/' ? '/token' : ENV.apiHost + "/token", data: { email: email, password: password } }).then((result) => { this.set('accessToken', result.token); let cookieService = this.get('cookies'); cookieService.write('accessToken', result.token); }); }, loadFromCookie() { let cookieService = this.get('cookies'); let token = cookieService.read('accessToken'); this.set('accessToken', token); }, invalidate() { this.set('accessToken', null); let cookieService = this.get('cookies'); cookieService.write('accessToken', null); }, isAuthenticated: Ember.computed.bool('accessToken')
});