Skip to content

Commit ad1f5f4

Browse files
committed
fix logout
1 parent d42a703 commit ad1f5f4

File tree

6 files changed

+19
-2
lines changed

6 files changed

+19
-2
lines changed

app/adapters/application.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { underscore } from '@ember/string';
55
import { inject as service } from '@ember/service';
66

77
export default DS.JSONAPIAdapter.extend(DataAdapterMixin, {
8+
session: service(),
89
authorize (xhr) {
910
let { key } = this.get('session.data.authenticated')
1011
xhr.setRequestHeader('Authorization', `Bearer ${key}`);
@@ -41,5 +42,12 @@ export default DS.JSONAPIAdapter.extend(DataAdapterMixin, {
4142
} else {
4243
return this._super(...arguments);
4344
}
45+
},
46+
actions: {
47+
error (e, transition) {
48+
if(e && e.status === 401) {
49+
this.get('session').invalidate()
50+
}
51+
}
4452
}
4553
})

app/authenticators/custom.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { inject as service } from '@ember/service';
33

44
export default Base.extend({
55
api: service(),
6+
router: service(),
67
restore (data) {
78
return Promise.resolve(data)
89
},
@@ -12,6 +13,8 @@ export default Base.extend({
1213
})
1314
},
1415
invalidate () {
15-
return this.get('api').request('/logout')
16+
return this.get('api').request('/logout').then(() => {
17+
this.get('router').transitionTo('index')
18+
}).catch(() => {})
1619
}
1720
})

app/pods/application/route.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import Route from '@ember/routing/route';
2+
import ApplicationRouteMixin from 'ember-simple-auth/mixins/application-route-mixin';
23
import { inject as service } from '@ember/service'
34

4-
export default Route.extend({
5+
export default Route.extend(ApplicationRouteMixin, {
56
session: service(),
67
currentUser: service(),
78
beforeModel () {

app/pods/callback/route.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@ import { inject as service } from '@ember/service'
33

44
export default Route.extend({
55
session: service(),
6+
currentUser: service(),
67
beforeModel (transition) {
78
if(this.get('session.isAuthenticated')) {
89
return ;
910
}
1011

1112
return this.get('session').authenticate('authenticator:custom', transition.queryParams.code)
13+
.then(() => this.get('currentUser').load())
1214
},
1315
afterModel () {
1416
this.transitionTo('index', {

app/pods/components/nav-bar/component.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import config from 'trouble-maker-frontend/config/environment';
55
export default Component.extend({
66
session: service(),
77
currentUser: service(),
8+
router: service(),
89
loginUrl: `https://account.codingblocks.com/oauth/authorize?response_type=code&client_id=${config.ONEAUTH.clientID}&redirect_uri=${config.ONEAUTH.callbackURL}`,
910
actions: {
1011
logout () {

app/services/current-user.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ export default Service.extend({
99
if (this.get('session.isAuthenticated')) {
1010
return this.get('api').request('/users/me').then(data => {
1111
this.set('user', data);
12+
}).catch(err => {
13+
this.get('session').invalidate()
1214
})
1315
}
1416
}

0 commit comments

Comments
 (0)